我在Google上搜索了规范表示的含义,然后发现文件太含糊了。谁能提供规范表示的快速解释,以及网站中典型表示攻击的一些典型漏洞是什么?
最佳答案
规范化是您接受输入(例如文件名或字符串)并将其转换为标准表示形式的过程。
例如,如果您的Web应用程序仅允许访问C:\websites\mydomain下的文件,那么通常将任何引用文件名的输入规范化为物理直接路径,而不是使用相对路径的输入。如果要打开C:\websites\mydomain\example\example.txt,则该函数的一个输入可能是example\example.txt。如果这超出了您网站的边界,将很难解决,因此规范化功能将查看应用程序目录,并将该相对路径更改为物理路径,即C:\websites\mydomain\example\example.txt。显然,这很容易检查,因为您只需在文件路径的开头进行字符串比较即可。
对于HTML输入,您可以采用%20之类的输入,并通过取消编码对其进行规范化,因此这将变成一个空格。这是一个好主意,因为有许多不同的编码方式,规范化意味着您将只检查解码后的字符串,而不是尝试覆盖所有编码变体。
基本上,您正在接受逻辑上等效的输入,然后将其转换为标准格式,然后可以对其进行操作。
关于representation - 规范表示是什么意思,及其对网站的潜在漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1167371/