开发安全之:Dangerous Function: Unsafe Regular Expression

这篇具有很好参考价值的文章主要介绍了开发安全之:Dangerous Function: Unsafe Regular Expression。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Overview

无法安全地使用函数 split()。不应该使用此函数。

Details

某些函数不论如何使用都有危险性。这一类函数通常是在没有考虑安全问题的情况下就执行了。 在这种情况下,您正在使用的危险函数为 dingdan_pc_list.php 的第 65 行中的 split()。 split() 函数不安全,因为它是已弃用的 POSIX 正则表达式函数系列的一部分,该函数系列会在遇到 null 字节时停止读取输入字符串。由于 PHP 允许字符串中包含 null 字节,因此在某些情况下使用这些函数可能很危险,应完全避免。

例 1:根据给出的 URL http://www.example.com/index.php?param=...,如果 URL 参数 param(代替“...”传递)与表示“零个或更多字母数字字符”的 POSIX 正则表达式 '^[[:alnum:]]*$' 相匹配,则 index.php 中 php 的以下片段会将其输出到屏幕中。 <?php $pattern = '^[[:alnum:]]*$'; $string = $_GET['param']; if (ereg($pattern, $string)) { echo($string); } ?> 虽然Example 1 可在使用字母数字输入的情况下正常运行,但由于使用不安全的 ereg() 函数来验证受破坏的输入,因此可能会通过注入 null 字节发动 Cross-Site Scripting (XSS) 攻击。如果为 param 传递一个值,而该值包含一个有效的字母数字字符串,并后跟 null 字节和 <script> 标签(例如 "Hello123%00<script>alert("XSS")</script>"),则 ereg($pattern, $string) 仍会返回 true,因为 ereg() 函数在读取输入字符串(从左至右)时会忽略 null 字节字符后面的所有内容。在此示例中,这意味着 null 字节之后注入的 <script> 标签将显示给用户并进行求值。

Recommendations

永不应该使用那些无法安全使用的函数。如果这些函数中的任何一个出现在新的或是继承代码中,则必须删除该函数并用相应的安全函数进行取代。 split() 函数及其相关的 POSIX 正则表达式函数自 PHP 5.3.0 起已被弃用,并被更加安全的 Perl 兼容正则表达式 (PCRE) 函数代替。 对于“说明”部分中介绍的Example 1,更加安全的解决方案是使用较新的 PCRE 函数 preg_match() 以及 PCRE 格式正则表达式,而不是使用较旧的 POSIX 函数 ereg()。PHP 文档提供了从较旧的 POSIX 正则表达式函数到较新且更安全的 PCRE 正则表达式函数的相应映射,其网址为 http://php.net/manual/en/reference.pcre.pattern.posix.php。POSIX 函数 sql_regcase() 是一个例外,因为它没有对等的 PCRE 函数,因此应完全避免。文章来源地址https://www.toymoban.com/news/detail-799597.html

到了这里,关于开发安全之:Dangerous Function: Unsafe Regular Expression的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【P15】JMeter 正则表达式提取器(Regular Expression Extractor)

    接口需要关联时,可以通过正则表达式提取所需要的值 右键 添加 后置处理器 正则表达式提取器(Regular Expression Extractor) Apply to Main sample and sub-samples:匹配范围包括当前父取样器并覆盖子取样器 Main sample only:默认;匹配范围是当前父取样器 Sub-samples only :仅匹配子取样器

    2024年02月07日
    浏览(43)
  • scanf函数不安全: C4996 ‘scanf‘: This function or variable may be unsafe. Consider using scanf_s instead

    代码报错: scanf函数易受缓冲区溢出攻击的影响,可能导致安全问题。 scanf_s函数是一种更安全的选择,它将缓冲区的大小作为参数并避免了缓冲区溢出攻击 举个栗子: 字符数组的大小为 5 , 若输入的字符串字符数目不超过 5 ,那么没问题, ( 注意字符串后面默认会多出来一个 ‘

    2024年02月03日
    浏览(42)
  • Visual studio解决‘scanf: This function or variable may be unsafe. 问题

    使用C语言的scanf函数在Visual Studio软件上运行会报如下错误: \\\'scanf: This function or variable may be unsafe. Consider using scanf s instead. To disable deprecation, use. CRT SECURE NO WARNINGS. See online help for details. 这个函数或变量可能是不安全的。请考虑使用扫描S。若要禁用弃用,请使用。CRT没有任何警

    2024年02月09日
    浏览(47)
  • 什么是JavaScript中的IIFE(Immediately Invoked Function Expression)?它的作用是什么?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月08日
    浏览(50)
  • Visual Studio编辑器中C4996 ‘scanf‘: This function or variable may be unsafe.问题解决方案

    目录 ​编辑 题目:简单的a+b 1.  题目描述 2.  输入格式 3.  输出格式 4.  样例输入 5.  样例输出 6.  解题思路 7.  代码示例 8.  报错解决 方案一 方案二 方案三 方案四 总结 输入两个整数a和b,计算a+b的和 本题很简单,但是注意此题是多组测试数据,即需要不停的接收系统

    2024年02月03日
    浏览(51)
  • Angular安全专辑之二——‘unsafe-eval’不是以下内容安全策略中允许的脚本源

    一:错误出现 这个错误的意思是,拒绝将字符串评估为 JavaScript,因为‘unsafe-eval’不是以下内容安全策略中允许的脚本源。 二:错误场景 类似的不安全的表达式还有: eval() Function() ——When passing a string literal like to methods like: setTimeout(\\\"alert(\\\"Hello World!\\\");\\\", 500); setTimeout() s

    2024年02月12日
    浏览(48)
  • vs如何运行不安全的代码/不安全代码只会在使用 /unsafe 编译的情况下出现

    🔑 作者:@哈桑c(CSDN平台) 🐛 专栏:Bug解决记录 Visual Studio 报错: CS0227: 不安全代码只会在使用 /unsafe 编译的情况下出现。 在 Visual Studio 中右击报错的项目选择属性,找到生成里面的 允许使用“unsafe\\\"编译的代码 ,勾选即可。 图示步骤: 完成上述步骤之后,就可

    2024年02月12日
    浏览(43)
  • ERR_UNSAFE_PORT浏览器安全问题导致无法访问的解决方案

    配置好web的https协议的服务器后,使用浏览器访问服务器的时候出现ERR_UNSAFE_PORT无法访问,如下图提示。 img src=“https://juejin.cn/ “点击并拖拽以移动”” style=“margin: auto” / 经过抓取报文分析,并没有抓到访问服务器的报文,定位发现是浏览器的保护机制自动拦截了请求,和

    2024年02月03日
    浏览(97)
  • web安全学习笔记【21】——安全开发

    安全开发-PHP应用留言板功能超全局变量数据库操作第三方插件引用 #知识点: 1、 PHP留言板前后端功能实现 2、 数据库创建架构 增删改查 3、 内置超全局变量HTMLJS混编 4、 第三方应用插件传参对象调用 DAY1 #章节点 PHP: 功能: 新闻 列表, 会员中心 , 资源下载 , 留言 版,

    2024年04月14日
    浏览(51)
  • 使用net/http/pprof时,发现6000端口是Chrome限制的非安全端口,报错ERR_UNSAFE_PORT

    最近在go项目中,涉及到性能分析,使用了go自有的net/http/pprof包,设置了6000端口后,发现浏览器打不开。PC上只有Edge和Chrome两个浏览器,刚好都是chrome内核。排查了系统问题、端口占用问题后,一直卡在这里-_- 后面发现浏览器报错了ERR_UNSAFE_PORT。才知道浏览器为了安全问题

    2024年02月07日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包