Maison >développement back-end >tutoriel php >php表单安全过滤究竟要怎么做?
网上好多方法,看来看去也不知道该用什么。
具体需要过滤什么才能做到安全?用什么函数?
用什么函数或方法过滤不和谐词语最合适?
最好给出一整套代码。片段看得太多,已经乱了。。。
网上好多方法,看来看去也不知道该用什么。
具体需要过滤什么才能做到安全?用什么函数?
用什么函数或方法过滤不和谐词语最合适?
最好给出一整套代码。片段看得太多,已经乱了。。。
表单层验证。页面上输入的能用js
验证的就验证,js
也有很多验证不同字符的函数,根据情况而定
程序层验证。主要考虑在SQL
方面了,当然了PHP
里面对于字符处理很多函数,根据自己的需求用不同的函数即可
提供个防SQL注入的小方法
<code> /** * description 过滤转义POST|GET */ final public static function isEscape($val, $isboor = false) { if (! get_magic_quotes_gpc ()) { $val = addslashes ( $val ); } if ($isboor) { $val = strtr ( $val, array ( "%" => "\%", "_" => "\_" ) ); } return $val; }</code>
当然了,如果你用的PDO
的话,PDO
预处理可以有效的防止SQL
注入
<code>1.防止表单重复提交,1.用表单令牌可以解决,2.点击提交按钮后,立即禁用button按钮 2.防止表单提交多余的数据, PHP 接收POST的时候,需要过滤,哪些是表单的,哪些的用户构造的 3.防止SQL注入,进行类型强制转换和采用PDO绑定参数方式操作数据库(参见thinkphp数据库类) 4.防止XSS攻击,需要过滤掉 <script> <iframe>等危险的HTML代码(参见thinkphp的 I 函数) 5.防止csrf攻击,每次进行增删查改之前,验证一个token 即可(参见Yii2的写法)</script></code>
你要问代码的话, 问问题千万不要直接要代码,只能你贴出你的代码,让我们帮你排错,拒绝伸手党,肯定是没有的,这都是结合各个优秀的框架和开源项目积累总结的
代码的话,可能要写好久好久
首先在客户端通过JS进行初步数据过来是有效的手段,但是请注意,一切在客户端进行的验证都是非安全的,都是可以绕过的
然后是在代码层进行数据过滤,例如php有些函数可以用来进行一些简单的过滤操作:
strip_tags 可以去掉文本内容中的所有html标签
htmlspecialchars 可以对文本内容中的html标签进行转义
addslashes 可以对内容中的特殊符号进行转义
这些函数可以进行初步过滤,然后具体的内容就需要自己编写相应的规则了,例如清除js代码或者其他的敏感词汇,需要自己编写对应的正则进行替换
最后则是在执行sql时进行一些安全操作,如pdo的预处理等