mysql %3c%3e语句优化_除了php / mysql Web应用程序中的预处理语句之外,还有其他选项可以避免sql注入吗?...

我知道,当我们谈论在php / mysql中准备好注入的sql注入是一种行之有效的方式,即使如此我们也不确定是否足够,但是我想知道是否有其他有效的解决方法来防止sql注入。

此外,我有这个小函数来解析字符串,以避免基本的SQL注入攻击。

function cleanString($str) {

$strEncoding = mb_detect_encoding($str) != 'UTF-8' ? 'ISO-8859-15' : 'UTF-8';

$str = trim($str);

$str = preg_replace('/(\s|\%20){2,}/', ' ', $str);// Elimino espacios

$str = preg_replace('/\t|\%09|\%0b|\%0B/', ' ', $str);// Elimino tabulaciones

$str = preg_replace('/\n|\r|\%0a|\%0A|\%0d|\%0D/', '', $str);// Elimino entradas de nueva línea

// Caracteres especiales más importantes ", &, ', (, ), -, ;, , `, ~

$str = preg_replace('/\(|\)|\-{2}|;|`|~/', '', $str);// Elimino algunos caracteres especiales

// Elimino cadenas y secuencia de bytes sospechosas

$str = preg_replace('/((0x2)(2|6|7|8|9|d|D))|((0x3)(b|B|c|C|d|D|e|E))|0x60|0x7e|0x7E/', '', $str);

$str = preg_replace('/\%22|\%26|\%27|\%28|\%29|\%2d|\%2D|\%3b|\%3B|\%3c|\%3C|\%3d|\%3D|\%3e|\%3E|\%60|\%7e|\%7E/', '', $str);

return htmlspecialchars($str, ENT_QUOTES, $strEncoding);

}该函数会影响字符串,因为它会替换用户可能在其输入中输入的一些基本字符((,),;),但我认为即使允许这些字符,它的效果也几乎相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值