有时在开发前后没有对表单进行过滤处理,导致用户能将JS,CSS等引入方式的提交到数据库,从而导致各种错误,甚至可以导致各种危险因素,解决方法也很简单,也就是过滤掉这些危险标签即可。
代码:
/** * 字符串过滤 * @param 字符串 $str */ function strFilter($str) { $farr = array( "/\s+/", //过滤多余空白 //过滤 <script>等可能引入恶意内容或恶意改变显示布局的代码,如果不需要插入flash等,还可以加入<object>的过滤 "/<(\/?)(script|i?frame|style|html|body|title|link|meta|\?|\%)([^>]*?)>/isU", "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",//过滤javascript的on事件 ); $tarr = array( "", "",//如果要直接清除不安全的标签,这里可以留空 "", ); $str = preg_replace( $farr,$tarr,$str); return $str; }