2012-06-01 2 views
0

제목이 모든 것을 말해줍니다. 내가 화면에 인쇄/인쇄하는 모든 것에 대해 nl2br (htmlspecialchars ($ text))을 사용해야합니까?

저는 주변을 둘러 보았습니다. 사용자의 입력을 처리 할 때 이스케이프 처리하고 데이터베이스에 삽입하여 위생적으로 처리 할 수 ​​있다고 생각합니다. 그런 다음 데이터베이스에서 검색 할 때 htmlspecialchars()를 사용하여 부적절한 문자를 안전한 등가로 변환하고 줄 바꿈을 나누기 위해 nl2br()을 사용해야합니다.

방금 ​​echo nl2br(htmlspecialchars($text)) 인 safeEcho()라는 새로운 함수를 만들어야 만하는데, 그 때마다 일반적인 echo/print 문 대신 사용자가 올 수있는 것을 출력해야 할 수도 있습니다.

+0

오직 Sith 만 절대적으로 거래합니다. – xbonez

+0

문자열을 데이터베이스에 저장할 때 아래 명시된 vlzvl과 같이 mysql_real_escape_string을 사용해야합니다. 그럼에도 불구하고 실제 문자열을 사용자에게 '반향'시킬 때는 해당 문자열을 사용해야합니다. 또한 Smarty (http://www.smarty.net/docsv2/en/language.modifier.escape)와 같은 템플릿 엔진을 사용하여이를 수행하십시오. – phsource

답변

2

아니, 당신 만이 필요한 데이터베이스에 안전하게 저장 :

mysql_real_escape_string($thedata); 

데이터베이스에서 읽기, 아무것도 할 해달라고 (싱글/더블 따옴표 다른 & 탈출); 많은 전환은 어떤 일도하지 않습니다.

nl2br은 "\ n"을 사용하고 <br \>을 생성합니다. 인쇄에 반드시 필요하지 않습니다.

+0

mysqli (http://www.php.net/manual/en/mysqli.real-escape-string.php) 모듈도 살펴 봐야한다.이 모듈은 대부분 mysql 모듈을 대신하며, superset. – phsource

+0

Hmm 헤이 @vlzvl 그래서 출력 할 때 htmlspecialchars()를 사용해서는 안된다고 말하는 겁니까? 어떤 사람들은 누군가가 코드를 삽입하면 브라우저에서 렌더링해야한다고 말한 것 같습니다. – carlinyuen

+0

그것은 달려있다; 누군가 자신의 HTML을 입력 할 수있는 방법을 제공하고 있습니까? [strip_tags] (http://php.net/manual/en/function.strip-tags.php)를 사용하여 'em'all을 효율적으로 제거하고 자신 만 허용 할 수 있습니다. –