2012-12-12 4 views
0

그래서 나는 당신이 할 수있는 $words = htmlspecialchars($_POST['name']); PHP에서 특수 문자를 이스케이프하고 일부 HTML 주입을 방지 할 수 있습니다.html 삽입 방지하기

하지만 실제로 PHP 코드에 구현하는 데 문제가 있습니다. 나는 당신이 사이트의 뷰어에게 보여주고있는 것을 보여주기 전에 그것을 사용해야한다는 것을 읽고 있었지만 어떻게해야하는지에 대해서는 분실했다. 나는 PHP 초심자이다.

그래서 SQL 주입 부분을 수행 할 수 있었지만 여기에 설명 된 것처럼 내가 붙어있는 코드 부분이 있습니다.

난 당신이 알려주세요 내 다른 물건에서 샘플 코드가 필요하면 제목의 블로그와 태그

$result= mysql_query("SELECT * FROM Bpost"); 

echo '<div class = "blog" align = "center">'; 
    while($row = mysql_fetch_array($result)) 
     { 

     echo "<div class = 'tname'>"; 
     echo $row['title']; 
     echo '</div>'; 

     echo '<div class = "bpost">'; 
     echo $row['blog']; 
     echo '</div>'; 

     echo '<div class = "tag">'; 
     echo $row['tags']; 
     echo '</div>'; 
     echo '</br>'; 

     } 
echo '</div>'; 

의 HTML 인젝션을 방지하기 위해 노력하고 있습니다. 나에게 이것은 이것으로 충분했다.

+3

[** 새 코드 **에서 mysql_ * 함수를 사용하지 마십시오. http://bit.ly/phpmsql. 더 이상 유지 관리되지 않으며 공식적으로 사용되지 않습니다 (https://wiki.php.net/rfc/mysql_deprecation). [** 빨간색 상자 **] (http://j.mp/Te9zIL)를 참조하십시오. 대신 [* prepared statements *] (http://j.mp/T9hLWi)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용하십시오. mysqli) - [이 기사] (http://j.mp/QEx8IB)는 어떤 결정을 내리는 데 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 튜토리얼입니다] (http://j.mp/PoWehJ). – Neal

+0

@Neal 이렇게하려면 봇을 작성해야합니다. – ceejayoz

+2

@ceejayoz 누가 내가하지 않았다고 말했습니까? :-P – Neal

답변

2

echo $row['title'];에서 echo htmlspecialchars($row['title']);으로 변경하고 다른 모든 사용자 생성 데이터에 대해 반복하면 설정됩니다.

+0

. 나는 그것이 실제로 그렇게 단순하다고 믿을 수 있습니다. – user1776221

+1

다시 말해서 : 안전하지 않다는 문자열을 반향하는 경우 항상'htmlspecialchars'를 호출하면 안전합니다. 문자열에 HTML이 포함될 수 있다면 그것은 또 다른 이야기이며 훨씬 복잡한 경우입니다. –

+0

그래, 그것이 모든 것을 보호하지 않는다는 것을 알고 있습니다. 이것은 필자가 스크립팅 클래스에서 추가 크레디트 프로젝트에 추가하고 싶었던 부분 중 하나입니다. 우리는 간단히 sql과 html injection에 대해서 이야기했고, 나는이 여분의 cred에 그것을 포함시킬 수도있을 것이라고 생각했다. 프로젝트 (비록 그것이 필요하지는 않지만) 단지 여분의 마일을 가고, 나의 선생님에게서 여분의 신용의 모든 작은 조각을 짜내는 것. – user1776221