一个更好的SQL字符串清理功能

mah*_*n23 4 php security

我目前正在使用以下函数来清理我的$ _POST和$ _GET反对SQL注入.不幸的是,我不能通过它发布代码,例如:" <a href test".Twitter如何做到这一点?

 function _secinput($variable)
 {return filter_var(mysql_real_escape_string($variable), FILTER_SANITIZE_STRING); }
Run Code Online (Sandbox Code Playgroud)

另外,任何人都可以告诉我是否可以通过任何方式改进它?

roo*_*ook 11

永远不会,也永远不会有一个功能来消毒一切.您必须为工作选择合适的工具.

1)htmlspecialchars($var,ENT_QUOTES)适用于大多数xss.

2)参数化查询库喜欢PDO并且MySQLi最适合sql注入.

3)对于CRLF injection,只需删除新行: str_replace("\n","",$var)

4)用于命令注入使用 escapeshellarg()

还有许多其他形式的注射剂.

  • 该死的,只是不知道你可以针对一个网站进行各种形式的注射.我只是想防止sql注入 (2认同)