欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php 防止查询的sql攻击方法总结

程序员文章站 2024-01-24 17:25:41
...
防止sql注入不但是新学的程序员朋友需要深入了解的一个重要知识点之外,还是我们这些写了多年程序的朋友也必须注意的东西,下面给新手介绍php 防止查询的sql攻击的一些例子,希望对各位会有所帮助.

一个入门级别的例子,代码如下:

$k = $_REQUEST['k']; 
$k = addslashes($k);//转义:单引号,双引号,反斜线,NULL 
$k = str_replace('%', '\%', $k); 
$k = str_replace('_', '\_', $k); 
$sql = "select * from users where name like '%$k%'"; 
if(!emptyempty($k)){ 
$res = mysql_query($sql, $con) or die(mysql_error()); 
if($row = mysql_fetch_assoc($res)){ 
    foreach($row as $k=>$v){ 
        echo $row[$k].':'.$row[$v].'
'; } } }else{ echo '******'; } 补充:mysql_real_escape_string();所以得SQL语句如果有类似这样的写法: "select * from cdr where src =".$userId; 都要改成 $userId=mysql_real_escape_string($userId) 例子代码如下:

所有有打印的语句如echo,print等,在打印前都要使用htmlentities() 进行过滤,这样可以防止Xss,注意中文要写出,代码如下:

htmlentities($name,ENT_NOQUOTES,GB2312).