Web应用安全防护全攻略
1. 防止跨站脚本攻击(XSS)
1.1 关键要点
除了进行适当的输入验证,避免将用户输入作为输出信息外,清理和编码是防止XSS的关键方面。
-清理(Sanitization):从字符串中移除不允许的字符,适用于输入字符串不应包含特殊字符的情况。
-编码(Encoding):将特殊字符转换为其HTML代码表示,例如将“&”转换为“&”,将“<”转换为“<”。对于允许在输入字符串中使用特殊字符的应用程序,清理不是一个选项,因此应在将输入插入页面并存储到数据库之前对其进行编码。
1.2 参考资料
OWASP有一份值得一读的XSS预防备忘单: https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
2. 防止不安全的直接对象引用(IDOR)
2.1 漏洞描述
当应用程序允许经过身份验证的攻击者在请求中简单地更改直接引用系统对象的参数值,从而访问未授权的另一个对象时,就会出现不安全的直接对象引用(IDOR)。例如本地文件包含和目录遍历漏洞。根据OWASP的说法,IDOR是Web应用程序中第四大最