用户PHP编码标准输入的数据
问题描述:
最近,我们正面临着与用户的问题很多输入的数据用户PHP编码标准输入的数据
像
- 他们使用不同的语言
- 输入特殊字符,如“'
如何处理所有这些,一个问题后,我们正面临着另一个。
或者,是否有任何编码标准或高级教程可用?
感谢
答
在处理用户提供的输入时,通常应该尝试“逃避”所有特殊字符。
如果你发现某些字符造成严重破坏你的系统,那么你可以像这样删除:
<?php
$BadChars = array(
"'", // Single quote - can harm SQL queries
"%", // Percent sign - can harm SQL queries
"<", // Less Than - can be used for XSS
">", // Greater Then - can be used for XSS
";", // Semicolon - can harm SQL queries
"£"
);
// $Input = $_GET['Name'];
$Input = "HELLO'%<;TEST";
foreach ($BadChars as $Char)
{
$Input = str_replace($Char, "", $Input);
}
print "Filtered Input: $Input";
?>
您也可以逃避数据也使用这种现有的功能http://php.net/manual/en/function.mysql-real-escape-string.php
进入数据库之前“造成问题”如何?哪里?不管语言如何,第一条规则就是永远不要相信用户的输入,并且对[大逃避现实(或:你需要知道如何处理文本中的文本)]中描述的概念有基本的了解](http:// kunststube.net/escapism/)。 – deceze 2013-02-25 16:11:12
使用UTF-8或UTF-16应该做的伎俩,不验证英文文本[az],并确保您的数据库设置为保存外来字符 – Waygood 2013-02-25 16:12:19
只有一条黄金法则:*永远不要信任用户输入* – J0HN 2013-02-25 16:12:55