WEB 보안은 언제나 매우 심각한 주제였습니다. SQL 주입은 일반적인 공격 방법입니다. 우리 코드는 비준수 데이터를 처리하고 주입을 방지하도록 설계되었습니다. 그러나 약한 유형의 언어인 PHP에는 항상 우리가 고려하지 못하는 위험이 있습니다. 이 기사에서는 SQL 삽입을 방지하는 간단하면서도 효과적인 방법을 공유합니다! ㅋㅋㅋ 오래전에 본 전문가의 말을 봤습니다. 프로그램 코드의 60%는 다양한 방어를 위한 것이어야 한다는 것입니다.
사실 지금 보면 SQL 인젝션 방지에는 실제로 다양한 매개변수 필터링이 필요하지 않은데, 아래에서 건조 정보 모드가 켜질 예정입니다!
PHP5.x에서는 새로운 mysql 작업 방법----mysqli를 도입하기 시작했습니다. PHP에는 PHP 사전 처리라는 해당 작업 방법도 있습니다. 객체 지향 접근 방식은 매개변수화된 바인딩 작업을 수행하는 데 사용됩니다. 데이터베이스 작업에 대한 모드 드라이버가 다르기 때문에 SQL 주입을 방지하는 데 매우 효과적일 수 있습니다.看 먼저 코드 예를 살펴보겠습니다. R
<!--?php $root = "root"; $pwd = "root"; $host = "localhost"; $database = "database"; $conn = new mysqli($host,$root,$pwd,$database);//面向对象的方式实例化一个对象 $keywords = $_GET['keywords']; $search_sql = "select content from mykey where title = ? ";//其中的?是一个占位符 $search_action = $conn --->prepare($search_sql);//进行预处理操作 $search_action ->bind_param("s",$keywords);//绑定参数,第一个参数表示为上面预处理的的占位符的数量和每一个参数的数据类型,s为字符串,i为整形,d为双精度小数,有几个参数,就写几个s或d或i,比如说iiii,ssss,sidi这样的。然后后面就是有几个参数就写几个要绑定的变量,比如bind_param('sss',$username,$password,$code); $search_action ->bind_result($content);//将结果绑定在相对应的变量上,比如你select了username,password,你就可以写bind_result($usernmae,$password); $search_action ->execute();//执行sql操作 while($search_action ->fetch()){ echo $content.'<br>'; } $search_action ->free_result();//释放内存 $search_action ->close();//结束这个实例化 ?>
PHP SQL 주입 및 방지 방지 Classic Case Analysis_php Tutorial
Discuz7.2 FAQ.php SQL 주입 취약성 분석, discuz7.2faq.php_php 자습서
위 내용은 PHP에서 SQL 삽입을 방어하는 간단하고 효율적인 방법 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!