开发安全之:split()安全漏洞

这篇具有很好参考价值的文章主要介绍了开发安全之: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-812992.html

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

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

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

相关文章

  • 《安全软件开发框架(SSDF) 1.1:降低软件漏洞风险的建议》解读(四)

    安全软件开发框架SSDF是由美国国家标准与技术研究院发布的关于安全软件开发的一组实践,帮助开发组织减少发布的软件中的漏洞数量,减少利用未检测到或未解决的漏洞的潜在影响,从根本上解决漏洞防止再次发生。本文根据《Secure Software Development Framework (SSDF) Version 1.1

    2024年02月13日
    浏览(52)
  • 《安全软件开发框架(SSDF) 1.1:降低软件漏洞风险的建议》解读(六)

    安全软件开发框架SSDF是由美国国家标准与技术研究院发布的关于安全软件开发的一组实践,帮助开发组织减少发布的软件中的漏洞数量,减少利用未检测到或未解决的漏洞的潜在影响,从根本上解决漏洞防止再次发生。本文根据《Secure Software Development Framework (SSDF) Version 1.1

    2024年02月13日
    浏览(47)
  • 第27天:安全开发-PHP应用&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞

    1.TP框架-开发-配置架构路由MVC模型 参考:https://www.kancloud.cn/manual/thinkphp5_1 配置架构-导入使用 路由访问-URL访问 数据库操作-应用对象 文件上传操作-应用对象 前端页面渲染-MVC模型 1.TP框架-安全-不安全写法版本过滤绕过 1.内置代码写法 不合要求的代码写法-ThinkPHP5-自写 2.框架

    2024年04月25日
    浏览(61)
  • 常见的Web安全漏洞有哪些,Web安全漏洞常用测试方法介绍

    Web安全漏洞是指在Web应用程序中存在的可能被攻击者利用的漏洞,正确认识和了解这些漏洞对于Web应用程序的开发和测试至关重要。 一、常见的Web安全漏洞类型: 1、跨站脚本攻击(Cross-Site Scripting,XSS):攻击者通过向Web页面注入恶意脚本来执行恶意操作,例如窃取用户敏感信

    2024年02月11日
    浏览(55)
  • 【网络安全】JWT安全漏洞

    Json Web Token(JWT) JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在两个组织之间传递安全可靠的信息。 JWT是一个有着简单的统一表达形式的字符串: 头部(Header) 头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。 JSON内容要经

    2024年02月12日
    浏览(35)
  • 安全漏洞分类之CNNVD漏洞分类指南

    适用范围说明 凡是被国家信息安全漏洞库(CNNVD)收录的漏洞,均适用此分类规范,包括采集的公开漏洞以及收录的未公开漏洞,通用型漏洞及事件型漏洞。 漏洞类型 CNNVD将信息安全漏洞划分为26种类型,分别是:配置错误、代码问题、资源管理错误、数字错误、信息泄露、

    2024年02月02日
    浏览(41)
  • 【安全漏洞】ThinkPHP 3.2.3 漏洞复现

    在 HomeControllerIndexController 下的index中传入了一个可控参数,跟进调试看一下。 跟进 display() 一路跟进到 fetch() ,然后一路进入 Hook::listen(\\\'view_parse\\\', $params); 关键地方在这,我们之前 index 里的内容被存入了缓存文件php文件中,连带着我们输入的可控的php代码也在其中,然后包

    2024年02月12日
    浏览(49)
  • Web安全漏洞介绍及防御-文件上传漏洞

    🐳博客主页:举杯同庆 – 生命不息,折腾不止 🌐订阅专栏:『Web安全』 📰如觉得博主文章写的不错,或对你有所帮助的话,请多多支持呀! 👉关注✨、点赞👍、收藏📂、评论。 话题讨论 中国经济周刊-2022-07-08 新闻 万豪国际集团证实了近期一起数据泄露事件,一个月

    2024年02月02日
    浏览(41)
  • 《WEB安全漏洞100讲》(第4讲)CSRF漏洞

    CSRF(Cross-site request forgery),跨站请求伪造,简写 CSRF/XSRF。指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作

    2023年04月08日
    浏览(42)
  • 「 典型安全漏洞系列 」12.OAuth 2.0身份验证漏洞

    在浏览网页时,你肯定会遇到允许你使用社交媒体帐户登录的网站。此功能一般是使用流行的OAuth 2.0框架构建的。本文主要介绍如何识别和利用OAuth 2.0身份验证机制中发现的一些关键漏洞。 为了更好的理解OAuth,我们假设有如下场景:有一个提供云冲印的网站,该网站可以将

    2024年04月10日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包