php过滤html和sql

无论哪种编程语言,过滤用户的输入总是很有必要的,asp流行的时代各种注入漏洞不断暴露出来。 一个基本的常识:所有不可信任的输入(特别是用户从form中提交的数据) ,输出之前都要转义。
echo $_GET['postdata'] ;
这个例子有可能输出:

这是一个明显的安全隐患,除非你保证你的用户都正确的输入。
如何修复 :
我们需要将”< ",">“,”and” 等转换成正确的HTML表示(< , >‘, and “),函数htmlspecialchars 和 htmlentities()正是干这个活的。

正确的方法:
echo htmlspecialchars($_GET['username'], ENT_QUOTES);
最简单的防止sql注入的方法(php+mysql中)在php.ini中将magic_quotes设置为On,但是不是所有的输入都是从$_GET, $_POST或 $_COOKIE中的得到的!
如何修复:
和在最简单的防止sql注入的方法(php+mysql中)中一样我还是推荐使用mysql_real_escape_string()函数

正确做法:
$sql = "UPDATE table SET
name='.mysql_real_escape_string($name).'
WHERE id='.mysql_real_escape_string ($id).'";
mysql_query($sql);
?>
如此一来,就能极大的降低程序的隐含漏洞

随便看看吧

多说几句
喜欢本文您可以任意转载。但请尊重老牛的劳动成果,转载请注明:
本文转载自:Leery' blog [http://www.cnpublic.com]
本文链接: http://www.cnpublic.com/2009/07/php-filter-html-and-sql/

人过留名,雁过留声,大侠过留Comment。欢迎您拍砖!

无论怎样,希望这篇文章对您有帮助!

Trackback

only 1 comment untill now

  1. thank you for this article!

    [回复]

Add your comment now