一级类: 跨站脚本
二级类:跨站请求伪造
数量: 126
详细信息:
跨站请求伪造(CSRF)是伪造客户端请求的一种攻击。应用程序允许用户提交不包含任何保密信息的请求,将可能导致CSRF攻击。
例如:以下代码片段用于银行转账功能,对于该重要敏感的操作没有进行相应防护,将易于导致跨站请求伪造攻击。
<form method="GET" action="/transferFunds ">
cash: <input type="text" name="cash">
to: <input type=" text " name=“to">
<input type="submit" name="action" value="TransferFunds">
</form>
修复建议:
防止跨站请求伪造攻击的方法如下:
(1)二次验证,进行重要敏感操作时,要求用户进行二次验证。
(2)验证码,进行重要敏感操作时,加入验证码。
(3)在重要敏感操作的表单中加入隐藏的Token。
例如:下面代码片段中,在表单中增加了一个Token。
<form method="POST" action="/new_user">
username: <input type="text" name="username">
password: <input type="password" name="user_passwd">
<input type="hidden" name="req_id" value="87ae34d92ba7a1">
<input type="submit" name="action" value="Create User">
</form>
这样,服务器端程序响应用户请求前先验证Token,判断请求的合法性。对于Token,越难被猜出攻击者攻击成功的概率就越低。
二级类:跨站请求伪造
数量: 126
详细信息:
跨站请求伪造(CSRF)是伪造客户端请求的一种攻击。应用程序允许用户提交不包含任何保密信息的请求,将可能导致CSRF攻击。
例如:以下代码片段用于银行转账功能,对于该重要敏感的操作没有进行相应防护,将易于导致跨站请求伪造攻击。
<form method="GET" action="/transferFunds ">
cash: <input type="text" name="cash">
to: <input type=" text " name=“to">
<input type="submit" name="action" value="TransferFunds">
</form>
修复建议:
防止跨站请求伪造攻击的方法如下:
(1)二次验证,进行重要敏感操作时,要求用户进行二次验证。
(2)验证码,进行重要敏感操作时,加入验证码。
(3)在重要敏感操作的表单中加入隐藏的Token。
例如:下面代码片段中,在表单中增加了一个Token。
<form method="POST" action="/new_user">
username: <input type="text" name="username">
password: <input type="password" name="user_passwd">
<input type="hidden" name="req_id" value="87ae34d92ba7a1">
<input type="submit" name="action" value="Create User">
</form>
这样,服务器端程序响应用户请求前先验证Token,判断请求的合法性。对于Token,越难被猜出攻击者攻击成功的概率就越低。