规范表示是什么意思及其对网站的潜在漏洞

2023-11-23

我在谷歌上搜索了规范表示的含义,发现了一些非常神秘的文档。任何人都可以快速解释规范表示以及网站中针对规范表示攻击的一些典型漏洞是什么?


规范化是获取输入(例如文件名或字符串)并将其转换为标准表示形式的过程。

例如,如果您的 Web 应用程序仅允许访问 C:\websites\mydomain 下的文件,则通常引用文件名的任何输入都会被规范化为物理直接路径,而不是使用相对路径的路径。如果您想打开 C:\websites\mydomain\example\example.txt 该函数的一个输入可能是 example\example.txt。很难确定这是否超出了网站的边界,因此规范化功能将查看应用程序目录并将相对路径更改为物理路径,即 C:\websites\mydomain\example\example.txt。这显然更容易检查,因为您只需在文件路径的开头进行字符串比较即可。

对于 HTML 输入,您采用 %20 之类的输入并通过取消编码对其进行规范化,因此这将变成一个空格。这是一个好主意,因为不同的编码方式有很多,规范化意味着您只需检查解码的字符串,而不是尝试覆盖所有编码变体。

基本上,您正在接受逻辑上等效的输入,并将它们转换为标准形式,然后您可以采取行动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

规范表示是什么意思及其对网站的潜在漏洞 的相关文章

随机推荐

  • 如何在 matplotlib 中制作分组箱线图

    我有三种算法 A B 和 C 我已经在不同的数据集上运行它们 并且希望将它们在每个数据集上的运行时间绘制为 Python 中的分组箱线图 作为我想要的视觉示例 我画了一幅糟糕的图 但希望它能表达要点 如果我的 python 数据如下所示 i
  • 无法安装 Docker - 哈希和不匹配(Ubuntu 18.04、Vagrant、Virtualbox)

    我只是无法在 Ubuntu 18 04 的新映像中安装 Docker 在 Virtualbox 中 使用 Vagrant 我正在使用官方网站的说明 https docs docker com install linux docker ce
  • 使用 SFTP 将文件从远程服务器直接复制到 Azure Blob 存储

    我有一个带有一堆静态文件的远程服务器 在Azure之外 我已在 Azure 中创建了辅助角色 并且希望使用该辅助角色通过 SFTP 将这些文件从远程服务器直接传输到我的 Blob 存储帐户 无需在本地复制到辅助角色 是否有关于如何做到这一点
  • JAXB 解组错误:预期元素为 <{ } Root>

    我正在重用其他地方生成的现有对象来解组以 String 类型传入的 XML 数据 物体 3 import java util ArrayList 4 import java util List 5 import javax xml bind
  • SQLite3 和多重处理

    我注意到当我在多处理环境中使用 sqlite3 时 它并不真正有能力也不可靠 每个进程都尝试将一些数据写入同一个数据库 以便一个连接被多个线程使用 我使用 check same thread False 选项进行了尝试 但插入的数量非常随机
  • 为什么javascript在迭代时将数组索引转换为字符串?

    这个 Javascript 逻辑让我困惑 我正在创建一个数组并将其第一个元素设置为数字 当我使用 for 循环对其进行交互时 Javascript 将数组键转换为字符串 为什么 我希望它保留一个数字 stuff stuff 0 3 for
  • PHP 电子邮件发送 BCC

    我知道有一些类似的问题 但我就是无法让它发挥作用 好的 我有一个从数据库中抓取的电子邮件列表 位于名为 emailList 的变量中 如果我将变量放入 我可以获取从表单发送电子邮件的代码 to节但是 我无法让它与密件抄送一起使用 我什至添加
  • 如何在 powershell 3 中将单个 txt 文件移动到 zip

    我正在尝试将一个文本文件复制 移动到 zip 文件 我不想解压它 复制文件并将其压缩回来 有什么方法可以直接将文本文件复制或移动到 powershell 中的 zip 中吗 当我在 powershell 中执行此操作时 当我尝试查看 zip
  • C++ Win32 未在 WM_DEVICECHANGE 上接收 DBT_DEVICEARRIVAL 或 DBT_DEVICEREMOVECOMPLETE

    我一直致力于检测 USB 插入 拔出 我已经使用 CreateWindowEx 实现了代码 并通过我的窗口进程回调传递了 WNCLASSEX 在插入和移除 USB 时 我成功收到 WM DEVICECHANGE 消息 但 wParam 始终
  • 如何将 JavaScript 变量“输出”到 HTML div 中

    我有一个 JavaScript 变量 我希望 HTML div 输出 7 我知道这很简单 但我似乎无法理解这一点 div Have 7 output here div 为 div 指定一个特定的 id 例如 div div 现在使用以下 J
  • 向上导航(操作栏的后箭头)不适用于片段

    我将抽屉布局作为我的活动的基本布局 并且我正在替换此抽屉布局内框架上的两个片段 第一个片段不会添加到片段的返回堆栈中 我在我的活动中显示汉堡包图标 我也希望在我的第一个片段中显示抽屉菜单 在第二个片段中 我禁用了汉堡包图标mActionBa
  • 是否可以使用输入值属性作为 CSS 选择器?

    是否可以使用 CSS 选择器来定位具有特定值的输入 示例 如何根据以下内容定位以下输入value United States
  • 使用 py2exe 捆绑 GTK 资源

    我正在使用 Python 2 6 和 PyGTK 2 22 6一体化安装程序在 Windows XP 上 尝试构建一个单文件可执行文件 通过py2exe 对于我的应用程序 我的问题是 当我将我的应用程序作为脚本运行时 即未内置到 exe文件
  • 当 C 预处理器宏定义两次时会发生什么?

    我定义了一个宏两次 如下所示 define a 2 define a 3 我认为任何发生a代码中将替换为2 什么时候 define a 3遇到了就没有了a代码中的 s 可以替换为3 所以2将优先 但是当我执行它的时候a被替换为3 为什么 如
  • 当我使用 XmlSerializer 反序列化时,为什么我的 DbNull 不是单例?

    我一直认为 DbNull value 是一个单例 因此你可以这样做 VB NET If someObject Is DbNull Value Then End if C If someObject DbNull Value 但最近 我使用
  • Azure 数据工厂和 SharePoint

    我有一些 Excel 文件存储在 SharePoint Online 中 我想要将 SharePoint 文件夹中存储的文件复制到 Azure Blob 存储 为了实现这一目标 我使用 Azure 门户在 Azure 数据工厂中创建一个新管
  • 写入RenderTarget后,如何高效克隆输出?

    XNA菜鸟在这里 每天都在学习 我刚刚弄清楚如何使用 RenderTarget2D 将多个纹理合成为一个 然而 虽然我可以将 RenderTarget2D 用作 Texture2D 来满足大多数用途 但有一个关键的区别 当调整后缓冲区大小时
  • Java GUI:文档对象模型

    HTML 有一个文档对象模型 Javascript 可以对其进行操作 移动 当我在 Swing 中创建 GUI 时 模型似乎非常不同 我不知道模型的名称 因为我正在创建布局管理器 并将对象粘贴在其中 我的问题 有没有办法以类似 DOM 的方
  • Safari 不发送“If-Modified-Since”和“If-None-Match”标头

    我正在使用 PHP 生成动态内容 我发送以下 HTTP 标头 HTTP 1 1 304 Not Modified Date Sun 09 Dec 2012 17 24 41 GMT Server Apache Connection keep
  • 规范表示是什么意思及其对网站的潜在漏洞

    我在谷歌上搜索了规范表示的含义 发现了一些非常神秘的文档 任何人都可以快速解释规范表示以及网站中针对规范表示攻击的一些典型漏洞是什么 规范化是获取输入 例如文件名或字符串 并将其转换为标准表示形式的过程 例如 如果您的 Web 应用程序仅允