2012-08-31 5 views
0

mysql injection 및 xss atack을 막기위한 좋은 해결책을 찾고 있습니다. 나는 많은 과목을 읽었지만 나에게 불분명하다.mysql injection 및 xss atack 방지

[b], [i], [u]와 같은 일부 bb 코드 만 허용하고 싶습니다. 그게 다야. 이 괜찮 경우

당신이 말해 주시겠습니까 :

<?php 
$escape = array('input_one','input_two','get_ids_from_url','etc'); 

foreach($escape as $input) 
{ 
    if(isset($_POST[$input])) 
    {$_POST[$input] = mysql_real_escape_string(htmlspecialchars(strip_tags($_POST[$input]), ENT_QUOTES, 'utf-8'));} 
    if(isset($_GET[$input])) 
    {$_GET[$input] = mysql_real_escape_string(htmlspecialchars(strip_tags($_GET[$input]), ENT_QUOTES, 'utf-8'));} 
} 
?> 
+2

SQL 삽입을 방지하려면 [PDO를 사용해야합니다.] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database- 접속하다/). 그것은 어리석은 증거는 아니지만 mysql_보다 더 안전합니다. – Stecman

답변

2

두 개의 서로 다른 용도로 입력을 탈출 무엇 당신이 여기 일을하는지 : HTML와 MySQL. 그렇게하지 마라. 마법의 따옴표가 이유 때문에 제거되었습니다.

당신이해야 할 일은 거의 사용되지 않고 단지 일반적으로 불량한 함수 인 mysql_ 대신에 PDO 나 MySQLi를 사용하여 실제로 변수를 사용하는 곳에서 이스케이프 처리를하는 것입니다.