首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何对所有POST数据运行PHP Preg_match?

对所有POST数据运行PHP preg_match,可以使用以下步骤:

  1. 获取POST数据:使用$_POST超全局变量来获取所有的POST数据。例如,可以使用以下代码获取名为"username"的POST数据:
代码语言:txt
复制
$username = $_POST['username'];
  1. 验证POST数据:使用preg_match函数对获取到的POST数据进行验证。preg_match函数用于执行正则表达式匹配。它接受三个参数:正则表达式模式、要匹配的字符串和一个可选的数组用于存储匹配结果。例如,以下代码使用preg_match验证用户名是否只包含字母和数字:
代码语言:txt
复制
if (preg_match('/^[a-zA-Z0-9]+$/', $username)) {
    // 验证通过
} else {
    // 验证失败
}
  1. 处理匹配结果:根据需要,可以根据preg_match的返回值来处理匹配结果。如果匹配成功,preg_match返回1,否则返回0。可以使用条件语句来根据返回值执行相应的操作。

总结: 对所有POST数据运行PHP preg_match的步骤包括获取POST数据、使用preg_match函数进行验证,并根据返回值处理匹配结果。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云云函数(SCF)。

  • 腾讯云云服务器(CVM):提供可扩展的云服务器实例,适用于各种应用场景。详情请参考:腾讯云云服务器
  • 腾讯云云函数(SCF):无服务器计算服务,可按需运行代码,无需管理服务器。详情请参考:腾讯云云函数
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

实例讲解PHP表单

此数组包含键/值,其中的键是表单控件的名称,而值是来自用户的输入数据。 2 GET 和 POST 被视作 _GET 和 _POST。..._POST 是通过 HTTP POST 传递到当前脚本的变量数组。 (1)何时使用 GET? 通过 GET 方法从表单发送的信息任何人都是可见的(所有变量名和值都显示在 URL 中)。...GET 所发送信息的数量也有限制。限制在大约 2000 个字符。 GET 可用于发送非敏感的数据。 注释:绝不能使用 GET 来发送密码或其他敏感信息! (2)何时使用 POST?...通过 POST 方法从表单发送的信息其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且所发送信息的数量无限制。...因此,$_SERVER[“PHP_SELF”] 将表单数据发送到页面本身,而不是跳转到另一张页面。这样,用户就能够在表单页面获得错误提示信息。

7.2K20
  • php代码审计-sql注入进阶篇

    php require 'db.php'; header('Content-type:text/html;charset=utf8'); $username=dl($_POST['username'])...php require 'db.php'; header('Content-type:text/html;charset=utf8'); $username=dl($_POST['username'])...注入成功 url编码绕过 在平常使用url提交数据时,web容器在接到url后会自动进行一次url编码解析,但是由于业务问题有些网站在web容器自动解析之后,通过编写程序解析的参数进行再次url编码解析...> 上来还是先看看代码,把客户端传入的get参数赋值进了id1,用if加preg_match变量id1的值进行检索。如果客户端传入的参数有gl里的值,那么就会返回前端代码进行警告。...把经过两次编码后的and提交数据会经过web容器解码后变为%61%6e%64,preg_match判定就不会触发。

    2.3K10

    三十六.津门杯CTF Web Write-Up万字详解(SSRF、文件上传、SQL注入、代码审计、中国蚁剑)

    > 知识总结 preg_match("/[A-Za-z0-9]+/",$code) + 长度限制 数字+字母:通过异或构造GET或POST请求实现绕过 preg_match("/[A-Za-z0-9..._@]+/", preg_match("/[A-Za-z0-9_ 该部分参考资料: 如何PHP编写一个不包含数字和字母的后门 绕过preg_match("/[A-Za-z0-9]+/",$code)...我们的想法是获取根目录或var目录下,查看是否存在flag.php或flag.txt相关的文件,但并未找到(不知道蚁剑如何搜索)。 第三步,调用相关插件进行深入渗透测试。...可以看到PHP版本是5.5,操作系统是Linux,但仍无法运行相关的函数绕过。怀疑是.htaccess文件,而这里需要php文件才行。...第五步,我们在该题目提供的config.php文件中发现了数据库的配置信息。接着我想flag是否藏在数据库表中。 config.php文件如下: 在数据库中添加信息的root用户和密码。

    4.8K21

    老生常谈的无字母数字Webshell总结

    ($_POST[_]); 看到代码中的下划线_、__、___是一个变量,因为 preg_match() 过滤了所有的字母,我们只能用下划线来作变量名。...\n"; } } } } fwrite($myfile,$contents); fclose($myfile); 首先运行以上 PHP 脚本后,会生成一个 txt 文档 xor_rce.txt,里面包含所有可见字符的异或构造结果...\n"; } } } } fwrite($myfile,$contents); fclose($myfile); 首先运行以上 PHP 脚本后,会生成一个 txt 文档or_rce.txt,里面包含所有可见字符的或运算构造结果...所以,只要我们能拿到一个变量,其值为a,那么通过自增操作即可获得a-z中所有字符。 那么,如何拿到一个值为字符串’a’的变量呢?...这是因为匹配到的所有的干扰文件的文件名都是小写,唯独 PHP 生成的临时文件最后一位是随机的大小写字母。 最后给出一个 Payload: POST /?shell=?><?

    3.6K20

    Web安全 | 无字母数字Webshell 总结

    所谓无字母数字 Webshell,其基本原型就是以下代码的绕过: 了,但是我们可以用另外两种短标签进行绕过,并且在短标签中的代码不需要使用分号 ; 。 其中, 相当于 <?...[_]); 看到代码中的下划线 _、__、___ 是一个变量,因为 preg_match() 过滤了所有的字母,我们只能用下划线来作变量名。...所以,只要我们能拿到一个变量,其值为 a,那么通过自增操作即可获得 a-z 中所有字符。 那么,如何拿到一个值为字符串'a'的变量呢?...这是因为匹配到的所有的干扰文件的文件名都是小写,唯独 PHP 生成的临时文件最后一位是随机的大小写字母。 最后给出一个 Payload: POST /?shell=?><?

    5.5K10

    命令执行漏洞

    preg_match() preg_match(pattern, input, matches, flags, offset) php中的通配符 和Linux的通配符相同 *可以代表任意个字符 ?...include "header.htm"; 上面的header.htm中可以php语句,因为可以包含html静态文件,所以可以设计缓存机制,比如把一些页面分为几部分,有一些读取数据库耗费效率的部分可以缓存为...()函数返回由所有已经定义的变量所组成的数组 array get_defined_vars(void); 返回值:返回一个包含所有已经定义变量列表的多维数组,这些变量包括环境变量,服务器变量,和用户定义的变量...c=print_r(get_defined_vars()); 发现是通过post给这个数组传参,尝试加一个postpost传参后回显 为了拿到array中的那个phpinfo()的字符串,rce...rce_or.php") #没有将php写入环境变量需手动运行 if(len(argv)!

    27810

    phar反序列化

    具体利用 有一说一,虽然看了一些文章来了解phar反序列化的作用原理,但是由于没有具体做题以至于这个反序列化还是一知半解,甚至连怎么做都不知道,不过后来看了bilala师傅的wp才知道该如何下手做。...[0]; if (preg_match('/get|flag|post|php|filter|base64|rot13|read|data/i', $data)) {...if (preg_match('/get|flag|post|php|filter|base64|rot13|read|data/i', $data)) { die("...当一个对象没有被引用时,PHP就会将其视为“垃圾”,这个”垃圾“会被回收,回收过程中就会触发析构函数,可以通过取消原本getflag的应用,从而出发他的析构函数。...,也就无法触发析构函数 而后两种只是抛出异常,但仍会继续执行程序 数组绕过preg_match 在题中POST[0]传入数组即可绕过关键字检测,就可以直接写入phar文件的内容了,无需phar文件做额外处理

    10200

    BJD WEB

    /i'; if (isset($_POST['q1']) && isset($_POST['q2']) && isset($_POST['q3']) ) { $url = $_POST['q2...preg_match('/^POST/i', $method)) { die($str4); } $detect = @file_get_contents($url, false...> 代码审计可以得到写思路 1.首先session进行了限制 2.post传参p1,p2,p3。而且p2会被加上.y1ng.txt,拼接url。q3会传给$method 3.不能出现flag!...4.必须要有http://127.0.0.1 5.q3传过来的$method必须含有GET或者POST 通过home文件的代码我们可以猜测到存在admin.php文件 然后下面就是要开始构造payload...对于%d可以发现代码中的$method和%d是连起来的,可以用GET%s来格式化,还需要把%d转义掉,对于sprintf()函数,百分号的转义是用2个%而不是反斜线 GET%s% 所以依次输入便可以查询到

    42230

    WriteUp分享 | LCTF的一道preg_match绕过+出题人的锅

    ###".str_shuffle('you_are_the_member_of_xdsec_here_is_your_flag');//$admin是每次随机生成的,碰撞的可能性是1/(35*35) preg_match...我比赛用的方法很匪夷所思,赛后跟出题人交流才知道原因,这是他的答复 导致数据库的user表和identities表清空的频率很快 可以反复注册同一个账户 登陆进去后,刚开始是guest,等一会刷新以下...,你会发现你不是guest了,因为identities表清空了,自然就绕过了member.php的逻辑 同时也有条件竞争的解法 第一天出题者的数据库还是正常的,这个时候就只能注册不同用户,代码的逻辑是...这之间有个间隙,而且由于pre_match()函数处理慢,这个间隙还是可利用的,code大概20个字符就能挺拖速度了,大概每秒注册10个用户,然后另一边同时用这10个用户去登陆,就能绕过guest了 第二天数据库异常...session memeber.php的会检测session 那么如果我们用脚本不断得注册并访问login.php,当member刚运行完此处 $_SESSION['is_logined'] 和 $_SESSION

    7.7K60

    SQL注入攻击与防御举例

    php include 'config.php'; $username = $_POST['username']; $password = $_POST['password']; if(!...数据库中密码明文不太好,顺便md5处理一下,加盐效果更好,可以防止数据库被黑了导致敏感信息泄漏。 $password = md5($_POST['password']); if(!...["phone"]; if (preg_match($pattern,$user_name) || preg_match($pattern,$phone)){ $msg = '...预编译能防止SQL注入是因为SQL语句在执行前经过编译后,数据库将以参数化的形式进行查询,当运行时动态地把参数传给预处理语句时,即使参数里有敏感字符如 'or''='数据库也会将其作为一个字段的属性值来处理而不会作为一个...php include 'config.php'; $username = $_POST['username']; $password = md5($_POST['password']); if(!

    99030
    领券