>백엔드 개발 >PHP 튜토리얼 >PHP에서 SQL 주입 방지

PHP에서 SQL 주입 방지

WBOY
WBOY원래의
2016-07-29 08:57:12910검색

SQL 주입은 일반적으로 불규칙하고 느슨한 문법으로 인해 발생하며, 문제는 SQL 문에서 발생하며 결정적인 요인은 인용(')입니다. 다음과 같습니다:
$sql = "delete from table where id ='$id'" ;
정상적으로 제출되면 제출된 데이터의 일부가 삭제됩니다. 제출된 ID가 (1 ’ 또는 1 #)이면 sql 문은
delete from table where id = '1'or 1 #';
이 됩니다. 이 경우 테이블 전체가 삭제되어 되돌릴 수 없는 결과가 발생합니다.
인용부호에서 문제가 발생하므로 그냥 이스케이프 처리하세요(')

  • php에서는
<code>addslashes(<span>$str</span>)
<span>//建议使用下面的,可以避免出现字符集问题</span>
mysql_real_escape_string(<span>$str</span>,<span>$link</span>)</code>
<code><span>//避免整型数据可能不被sql增加引号,强制在转换后的数据使用引号包裹</span><span><span>function</span><span>(<span>$str</span>)</span>{</span><span>return</span><span>"'"</span>.mysql_real_escape_string(<span>$str</span>,<span>$this</span>->link).<span>"'"</span>;
}</code>
').addClass를 사용할 수 있는 두 가지 기능을 제공합니다. ('사전 번호 매기기').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위 내용은 PHP에서의 SQL 주입 방지에 대한 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.