gpt4 book ai didi

html - 设计一个通过单击链接而不是表单按钮来完成注销功能的网页是否安全?

转载 作者:可可西里 更新时间:2023-11-01 12:51:56 26 4
gpt4 key购买 nike

我看到很多文章警告不要使用链接来提供注销功能。他们都建议使用表单和按钮进行注销。

当我使用 firebug 检查 gmail 的注销元素的 html 时,我发现它是一个链接:

<a target="_top" role="button" id="gb_71" onclick="gbar.logger.il(9,{l:'o'})" href="?logout&amp;hl=en" class="gbqfbb">Sign out</a>

href 有类似的东西

https://mail.google.com/mail/ca/?logout&hl=en

他们使用链接是因为 href 是 https 吗?这种用法有多安全?

最佳答案

不鼓励开发人员使用链接而不是表单的原因是,它会使站点容易受到 CSRF(跨站点请求伪造)攻击。假设您有一个站点,注销 URL 是 example.org/?logout。如果您访问我的站点,并且我加载了该 URL,它将使您退出 example.org 上的当前 session 。这似乎没有破坏性,但必须继续登录是相当烦人的。

现在想象一下,您将它实现为一个表单...

<form action="?logout" method="POST">
<input type="hidden" value="blahblah" name="key" alt="I am a random key!" />
<input type="submit" value="Log out..." />
</form>

key 的值将在页面加载时随机生成。当加载 url example.org?logout 时,它会检查 session 以确保随 secret 钥与表单提交的 key 相同。如果不相同,则用户可能无法注销。如果相同,则可能。

这个简单的方法阻止了所描述的 CSRF 攻击。它简单有效,没有理由不实现它。

关于html - 设计一个通过单击链接而不是表单按钮来完成注销功能的网页是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11076653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com