php过滤所有恶意字符(批量过滤post,get敏感数据)

yizhihongxing

要过滤所有恶意字符,可以使用PHP提供的过滤器来过滤post、get敏感数据。过滤器可以根据指定的规则对数据进行过滤,从而保障服务器和用户的安全性。

具体的步骤如下:

第一步:定义过滤规则

可以通过定义过滤规则实现对输入数据的过滤。在PHP中,可以使用filter_var()filter_input()函数来过滤输入数据。这两个函数使用起来非常方便,可以通过传递不同的参数来过滤不同类型的数据。

以下是一个示例:

// 对输入数据进行过滤,去除所有HTML标签和PHP代码
$postData = array_map('strip_tags', $_POST);
$postData = array_map('trim', $postData);
$postData = array_map('stripslashes', $postData);

以上代码通过调用array_map()函数和strip_tags()等过滤器函数对$_POST数据进行过滤,并将过滤后的数据存储到$postData变量中。这里包括了去除HTML标签、去除空格和去除反斜杠等功能。

第二步:过滤提交数据

对于post、get等提交的敏感数据,可以使用已经定义好的过滤规则进行过滤。

以下是一个示例:

// 过滤post数据
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_SPECIAL_CHARS);
$password = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_SPECIAL_CHARS);
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);

// 过滤get数据
$page = filter_input(INPUT_GET, 'page', FILTER_SANITIZE_NUMBER_INT);

以上代码通过调用filter_input()函数对$_POST$_GET数据进行过滤,并将过滤后的数据存储到相应的变量中。这里使用了FILTER_SANITIZE_SPECIAL_CHARSFILTER_SANITIZE_NUMBER_INT等过滤规则来对数据进行过滤。

另外,需要注意的是,对于包含文件路径的数据,需要使用FILTER_SANITIZE_URL过滤规则来过滤路径,避免远程文件包含等安全问题。

示例说明:

以下是一个完整的示例代码,用于对提交的表单数据进行过滤,确保数据的安全性。

// 定义过滤规则
function custom_filter($data) {
    $data = trim($data);       // 去除前后空格
    $data = stripslashes($data);   // 去除反斜杠
    $data = htmlspecialchars($data); // 转换HTML标签为实体字符
    return $data;
}

// 过滤post数据
$username = filter_input(INPUT_POST, 'username', FILTER_CALLBACK, array('options' => 'custom_filter'));
$password = filter_input(INPUT_POST, 'password', FILTER_CALLBACK, array('options' => 'custom_filter'));
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);

// 过滤get数据
$page = filter_input(INPUT_GET, 'page', FILTER_SANITIZE_NUMBER_INT);

以上代码中,首先定义了一个自定义的过滤规则custom_filter()用于对输入数据进行过滤。然后通过调用filter_input()函数来对POSTGET数据进行过滤,并将过滤后的数据保存到相应的变量中。

示例二:

// 定义过滤规则
$unsafe = array("|", "?", ";", "$", "#", "<", ">", "(", ")", "\\", "\"", "'", "-");
function custom_filter($str) {
    global $unsafe;
    return str_replace($unsafe, '', $str);
}

// 过滤post数据
$username = filter_input(INPUT_POST, 'username', FILTER_CALLBACK, array('options' => 'custom_filter'));
$password = filter_input(INPUT_POST, 'password', FILTER_CALLBACK, array('options' => 'custom_filter'));
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);

// 过滤get数据
$page = filter_input(INPUT_GET, 'page', FILTER_SANITIZE_NUMBER_INT);

以上代码中,通过定义一个包含所有不安全字符的数组,并配合str_replace()函数实现对输入数据的过滤。然后通过filter_input()函数过滤提交的敏感数据,并保证输入数据的安全性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php过滤所有恶意字符(批量过滤post,get敏感数据) - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • 完善版手游导航源码app软件 APP手机软件 应用商城下载类网站布局规整

    demo软件园每日更新资源,请看到最后就能获取你想要的:   1.完善版手游导航源码app软件 APP手机软件 应用商城下载类网站布局规整,利于用户体验 浏览网站看到一款带后台的app软件手游类源码,后台功能强大,界面美观,适用于app软件,手机软件下载,手游类导航网, 其他行业也可以把数据删掉,添加自己的就行了,布局规整,利于用户体验,手工书写DIV+CS…

    PHP 2023年4月17日
    00
  • PHP简单获取随机数的常用方法小结

    以下是“PHP简单获取随机数的常用方法小结”的完整攻略: 1. 使用 rand 函数 使用 PHP 内置的 rand 函数可以快速获取随机数。这个函数接受两个参数,分别是所需要的随机数的最小值和最大值。函数将返回一个在这个范围内的随机整数。 下面是一个例子,获取一个 1 到 100 之间的随机整数: $randomNum = rand(1, 100); ec…

    PHP 2023年5月26日
    00
  • PHP获取数组中单列值的方法

    获取数组中单列值是PHP中常见的一个操作,这里提供以下3种获取数组中单列值的方法: 1.使用foreach循环遍历数组获取单列值 $users = array( array(‘id’ => 1, ‘name’ => ‘张三’, ‘age’ => 20), array(‘id’ => 2, ‘name’ => ‘李四’, ‘age…

    PHP 2023年5月26日
    00
  • 使用PHP导出Word文档的原理和实例

    使用PHP导出Word文档的原理和实例 前言 随着互联网的发展,更多的应用程序需要将数据以Word文档的形式导出,这就需要我们使用PHP来实现。而本文就是一份基于PHP导出Word文档的攻略,通过本文中的示例代码,你将会学会如何使用PHP来实现导出Word文档。 导出Word文档的原理 要将数据以Word文档的形式导出,需要从以下几个方面来考虑: Word文…

    PHP 2023年5月26日
    00
  • fpm模式下读取到is_cli为何为true

    目录 问题出现和简单排查 排查 经过思考和猜测,严重怀疑是fpm读取到了cli下的opcache 原起 粗浅探索 测试代码 opcache配置 共享内存缓存与文件缓存 php-fpm下读取到is_cli为true,不知道你们是否遇到过,我是遇到了。。。。有人会说,即使为true又怎么了,你是没遇到有些根据is_cli来走不同逻辑判断的,如果读取的是错的就会引…

    PHP 2023年4月17日
    00
  • 小程序实现登录功能

    小程序实现登录功能需要进行以下步骤: 步骤一:前端页面设计 在小程序前端页面上添加登录按钮,并通过 JS 代码实现以下功能: 点击登录按钮后,调用小程序提供的 wx.login() 接口,获取到需要向服务器发送登录请求的 code; 将获取到的 code 发送给服务器,通过服务器获取到 sessionKey 和 openId; 将获取到的 sessionKe…

    PHP 2023年5月30日
    00
  • 用PHP实现的服务端socket具体实例

    下面是关于“用PHP实现的服务端socket具体实例”的完整攻略: 1、什么是服务端socket? 服务端socket是一个能够监听和接收来自客户端的连接请求的网络服务器端。在这种情况下,服务端socket通常运行在一个已知的服务器上,等待来自客户端的连接。当客户端连接成功时,服务器可以使用所接收到的连接来与客户端进行通信。 2、使用PHP实现服务端sock…

    PHP 2023年5月27日
    00
  • php使用unset()删除数组中某个单元(键)的方法

    当我们想要在PHP中删除数组中某个单元的时候,可以使用unset()函数来实现。该函数用于删除指定键的数组元素。下面是使用unset()函数来删除数组中某个单元的方法和示例说明。 1. unset()函数的作用及语法 unset()函数用来销毁指定变量。在数组中,它可以删除指定键的元素。 unset()函数的语法如下: unset(array $array,…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部