如何预防PHP MYSQL注入【攻击】

来源:百度知道 编辑:UC知道 时间:2024/05/24 22:48:14
有朋友谈到PHP-MYSQL的漏洞很多,比如注入!
他说一般的方法对高手来说没有用,
比如PHP里面的普通方法不能转义16进制数
在PHP执行 query(SQL语句) 时,会把16进制数转换成对应的字符
例如单引号(’)等
不知道他说的是否正确,
想请问一下各位高手如果他说的正确,
如何预防这样的注入攻击!
(我想要一个有建设性,切实能解决很多安全问题的方法!
如果您的回答完全和PHP手册上的一样就不要说了,谢谢)
很感谢您的回答,不过要是有人用16进制进行注入攻击我该怎么预防?

补充:
对于16进制入侵还没确切防御手段,只能自己手动查有没有被入侵这样
你可以用javascript做客户端限制输入数据,治标不治本而已,填用户名的表单用username做name

function validate(){
var username = $("#username").val();
if (username.match(/[^a-zA-Z0-9]/) || username.length < 3)
{
alert('Invalid username: \'' + username+'\'' );
return false;
}
}

-------------------------------------------------------
php 漏洞已经相对很少了,告诉你个简单的预防单引号的方法

写下这个function

function sql_quote( $value )
{
if( get_magic_quotes_gpc() )
{
$value = stripslashes( $value );
}
if( function_exists( "mysql_real_escape_string" ) )
{
$value = mysql_real_escape_string( $value );
}
else
{
$value = addslashes( $value );
}
return $value;
}

然后写sql的时候这么写
$use