请问PHP怎么过滤GET或者POST的参数?防止js注入,或者一些html注入?请请提供代码参考?谢谢!

JavaScript013

请问PHP怎么过滤GET或者POST的参数?防止js注入,或者一些html注入?请请提供代码参考?谢谢!,第1张

string mysql_real_escape_string ( string unescaped_string [, resource link_identifier])

本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。

注: mysql_real_escape_string() 并不转义 % 和 _。

例子 1. mysql_real_escape_string() 例子

<?php

$item = "Zak's and Derick's Laptop"

$escaped_item = mysql_real_escape_string($item)

printf ("Escaped string: %s\n", $escaped_item)

?>

以上例子将产生如下输出:

Escaped string: Zak\'s and Derick\'s Laptop

用js过滤非法字符是不安全的,js是客户端技术,可以本地绕过

如果数据是入库的,最好在服务器端在过滤一次,防止恶意字符进入数据库,形成注入,可以这样过滤

<?php

if (isset($_GET['price'])){

(is_numeric($_GET['price']) and is_int($_GET['price']+0))?$price=$_GET['price']:die('非int类型,请重新输入')

echo "价格为 $price"

}

?>

<form action="">

<input type="text" name="price">

<input type="submit" value="send">

</form>

不过int型范围是2147483647,超出后即使是整数,也被解释为float