我在谷歌上搜索了规范表示的含义,发现了一些非常神秘的文档。任何人都可以快速解释规范表示以及网站中针对规范表示攻击的一些典型漏洞是什么?
规范化是获取输入(例如文件名或字符串)并将其转换为标准表示形式的过程。
例如,如果您的 Web 应用程序仅允许访问 C:\websites\mydomain 下的文件,则通常引用文件名的任何输入都会被规范化为物理直接路径,而不是使用相对路径的路径。如果您想打开 C:\websites\mydomain\example\example.txt 该函数的一个输入可能是 example\example.txt。很难确定这是否超出了网站的边界,因此规范化功能将查看应用程序目录并将相对路径更改为物理路径,即 C:\websites\mydomain\example\example.txt。这显然更容易检查,因为您只需在文件路径的开头进行字符串比较即可。
对于 HTML 输入,您采用 %20 之类的输入并通过取消编码对其进行规范化,因此这将变成一个空格。这是一个好主意,因为不同的编码方式有很多,规范化意味着您只需检查解码的字符串,而不是尝试覆盖所有编码变体。
基本上,您正在接受逻辑上等效的输入,并将它们转换为标准形式,然后您可以采取行动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)