注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天上人间*bobo之家

有阳光的时段,就有他(她)的博客文章。也许天气并非晴空万里,博主的“博物钟”却是

 
 
 

日志

 
 

屏蔽用户的输入  

2009-08-18 09:20:09|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

必须使用函数addslashes()在用户数据进入数据库之前过滤该数据。这个函数过滤掉可能引起数据库问题的字符。可以使用函数stripslashes()将数据返回到它的原始形式。

.可以在php.int配置文件中开启magic_quotes_gpc和magic_quotes_runtime的指令。这些指令将自动的添加和过滤斜杠。magic_quotes_gpc指令用于格式化get、post和cookies变量,而magic_quote_runtime用于格式话进入数据库中的数据。

.当传递用户数据给system()或者exec()时,必须使用函数escaeshellcmd().该函数可以避免任何怀有恶意的用户输入强迫系统运行某些特定命令的字符。

.可以使用函数strip_tags()从一个字符串当中去掉html和php标记。这样可以避免用户将恶意的脚本植入到用户的数据中。

.可以使用函数htmlspecialchars(),该函数将字符串转成它们等价的html实体。例如“《”将被转换成"<”,该函数可以将任何脚本标记转换成无害的字符。

举例:

<?php
$flag = 3;
switch($flag){
case 1:{
      $str = "Is your name O'reilly?";

      // 输出:Is your name O\'reilly?
      echo addslashes($str);
      echo "<br>".stripslashes(addslashes($str));
      break;
}
case 2:{
      $e = escapeshellcmd("aaa ddd aa");

     // here we don't care if $e has spaces
     system("echo $e");
     $f = escapeshellcmd("a.txt");
     // and here we do, so we use quotes
     system("dir");

      break;
}
case 3:{
      $text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
      echo strip_tags($text);
      echo "\n";

      // Allow <p> and <a>
      echo strip_tags($text, '<p><a>');

      break;
}
case 4:{
      $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
      echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;

      break;
}
}

?>

  评论这张
 
阅读(250)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018