PHP实例:PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
|
《PHP实例:PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】》要点: 本文实例讲述了PHP实现表单提交数据的验证处理功能.分享给大家供大家参考,具体如下:PHP教程 防XSS攻击代码:PHP教程
/**
* 安全过滤函数
*
* @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);
return $string;
}
代码实例: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;
}
?>
//过滤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!");
}
}
}
}
防sql注入: PHP教程
下列字符受影响:PHP教程 x00 如果成功,则该函数返回被转义的字符串.如果失败,则返回 false.PHP教程 语法 PHP教程
对于纯数字或数字型字符串的校验可以用PHP教程
实例:PHP教程
<?php
function get_numeric($val) {
if (is_numeric($val)) {
return $val + 0;
}
return 0;
}
?>
is_array ― 检测变量是否是数组 is_dir 判断给定文件名是否是一个目录 is_file ― 判断给定文件名是否为一个正常的文件 is_bool ― 检测变量是否是布尔型 is_string ― 检测变量是否是字符串 is_int ― 检测变量是否是整数 is_float ― 检测变量是否是浮点型 is_null ― 检测变量是否为 NULL is_readable ― 判断给定文件名是否可读 is_writable ― 判断给定的文件名是否可写 file_exists ― 检查文件或目录是否存在 is_executable ― 判断给定文件名是否可执行 更多关于PHP相关内容感兴趣的读者可查看本站专题:《php程序设计安全教程》、《php安全过滤技巧总结》、《PHP运算与运算符用法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》PHP教程 希望本文所述对大家PHP程序设计有所帮助.PHP教程 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
