2014-02-12 4 views
2

xss-injects에서 내 textareas를 살균하기 위해이 도구를 사용했습니다. havent는 아직 문제가 없었지만, Google에서이 책을 안전한 방법으로 읽는 지 확신하지 못했습니다.안전하게 textarea를 살균하고 있습니까

$comment = nl2br(htmlspecialchars($_POST['comment'])); 

그렇다면 DB에 mysql을 bind_param();

을 SQL-가 주입 방지하고 lasty 난 그냥이 안전한 방법입니다 <p><?php echo $info['comment']; ?></p>

하여 outputtting 무엇입니까?

내가하고 싶은 것은 방금 만든 다음 내 DB에 저장하고 출력하고, 작동하는 줄 바꿈과 함께하는 것입니다. 사전에

감사합니다, 그것은 그대로 사용하여 귀하의 데이터베이스 라이브러리가 제공하는 이스케이프 것을

답변

3

스토어. nl2br 및 필요한 경우 htlmentities/specialchars을 표시합니다.

+0

건배, DB에 삽입 할 때 htmlspecialchars()를 사용하지 않는 이유는 무엇입니까? – user2722667

+0

이것은 HTML이기 때문에 HTML로 렌더링하고 싶다면 실제 형식이 될 것입니다. HTML로 렌더링하지 않으려면 변환합니다. DB에서 HTML로 안전하지는 않지만 브라우저에서 안전하지 않을 수 있습니다. – AbraCadaver

+0

그래, 내가'nl2br (htmlspecialchars ($ _ POST [ 'comment']));'를 사용하면 걱정하지 않아도 될 것 같아요. 그것을 삽입? – user2722667

0

전혀 살균하지 않습니다.

마찬가지로 이스케이프 방법은 데이터베이스 유형에 따라 다르므로 데이터베이스 라이브러리에서 제공하는 이스케이프 기능을 사용해야합니다.

이전에는 mysql_real_escape_string()을 사용했지만 PHP 5.5.0에서는 더 이상 사용되지 않습니다.

+0

이 코멘트가 불필요한 upvote를 부담하는 것은 수치입니다. –

+0

더러운 가방이 아니라 정성스럽게 케어 하시겠습니까? –

+0

mysqli bind_param/mysqli prepared statement를 사용하고 있으므로 real_escape가 필요하지 않습니까? 위의 코드가 XSS에 대해 나를 보호하고 SQL- 주사를 방지하지 않는다면 제 질문이 있습니다. – user2722667