这篇文章主要介绍了php实现表单提交数据的验证处理功能,可实现防sql注入和xss攻击等,涉及php字符处理、编码转换相关操作技巧,需要的朋友可以参考下
防XSS攻击代码:
/**
* 安全过滤函数
*
* @param $string
* @return string
*/
function safe_replace($string) {
$string = str_replace('%20','',$string);
$string = str_replace('%27','',$string);
$string = str_replace('%2527','',$string);
$string = str_replace('*','',$string);
$string = str_replace('"','"',$string);
$string = str_replace("'",'',$string);
$string = str_replace('"','',$string);
$string = str_replace(';','',$string);
$string = str_replace('<','<',$string);
$string = str_replace('>','>',$string);
$string = str_replace("{",'',$string);
$string = str_replace('}','',$string);
$string = str_replace('\','',$string);
return $string;
}
PbootCMS是一款高效、简洁、强悍的开源PHP企业网站开发建设管理系统。 PbootCMS 1.1.8 更新日志:2018-08-07 1.修复提交表单多选字段接收数据问题; 2.修复登录过程中二次登陆在页面不刷新时验证失败问题; 3.新增搜索结果fuzzy参数来控制是否模糊匹配; 4.新增父分类,顶级分类名称及链接独立标签,具体见手册; 5.新增内容多图拖动排序功能。
243
立即学习“PHP免费学习笔记(深入)”;
代码实例:
<?php
$user_name = strim($_REQUEST['user_name']);
function strim($str)
{
//trim() 函数移除字符串两侧的空白字符或其他预定义字符。
//htmlspecialchars() 函数把预定义的字符转换为 HTML 实体(防xss攻击)。
//预定义的字符是:
//& (和号)成为 &
//" (双引号)成为 "
//' (单引号)成为 '
//< (小于)成为 <
//> (大于)成为 >
return quotes(htmlspecialchars(trim($str)));
}
//防sql注入
function quotes($content)
{
//if $content is an array
if (is_array($content))
{
foreach ($content as $key=>$value)
{
//$content[$key] = mysql_real_escape_string($value);
/*addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
单引号(')
双引号(")
反斜杠()
NULL */
$content[$key] = addslashes($value);
}
} else
{
//if $content is not an array
//$content=mysql_real_escape_string($content);
$content=addslashes($content);
}
return $content;
}
?>立即学习“PHP免费学习笔记(深入)”;
//过滤sql注入
function filter_injection(&$request)
{
$pattern = "/(select[s])|(insert[s])|(update[s])|(delete[s])|(from[s])|(where[s])/i";
foreach($request as $k=>$v)
{
if(preg_match($pattern,$k,$match))
{
die("SQL Injection denied!");
}
if(is_array($v))
{
filter_injection($request[$k]);
}
else
{
if(preg_match($pattern,$v,$match))
{
die("SQL Injection denied!");
}
}
}
}立即学习“PHP免费学习笔记(深入)”;
防sql注入:
mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。
下列字符受影响: