Php 使用表单和链接进行注销功能有什么好处?

Php 使用表单和链接进行注销功能有什么好处?,php,css,Php,Css,我正在构建一个web应用程序,正在处理注销功能(logout.php上的简单会话unset/meta-refresh/redirect代码) 可能是一个简单的问题(虽然我在谷歌上搜索了很多次,但都没有找到结果),但是对于网站上的注销按钮,使用提交到logout.php的表单与使用链接到同一页面的a href的按钮图形相比,有何好处 从功能上看,它们似乎工作相同,但是否存在任何潜在的安全问题等 谢谢你 不需要,除非您确实需要在登录脚本中发布一些内容,否则这两种方法都可以正常工作 一个链接可能比一个

我正在构建一个web应用程序,正在处理注销功能(logout.php上的简单会话unset/meta-refresh/redirect代码)

可能是一个简单的问题(虽然我在谷歌上搜索了很多次,但都没有找到结果),但是对于网站上的注销按钮,使用提交到logout.php的表单与使用链接到同一页面的a href的按钮图形相比,有何好处

从功能上看,它们似乎工作相同,但是否存在任何潜在的安全问题等


谢谢你

不需要,除非您确实需要在登录脚本中发布一些内容,否则这两种方法都可以正常工作

一个链接可能比一个表单更容易被搜索引擎蜘蛛抓取,但这是一个注销按钮,这不会有什么区别

一个链接有一个小的优点,你可以很容易地为它添加书签。我会用一个链接


编辑:还可以查看@dqhendrick关于链接的评论。这对你的环境来说可能不太重要,但最好记住

这里有两件事很重要:

  • 如果它是一个表单,并且它是POST而不是get,那么您需要重定向以避开通常的浏览器后退按钮+POST数据不愉快。当然,您已经提到重定向,所以这可能与此无关
  • 由于HTTP GET请求被认为是幂等的,所以“正确的方法”应该是使用POST,这意味着表单。然而,这种论点缺乏实际的理由。除非某些行为不端和/或配置错误的浏览器插件决定让用户的生活变得困难,否则您应该可以使用链接

  • <> P>实质上不存在实际差异。

    < P>在做出这一决定时,除了考虑其他易得性含义外,还可以考虑。一个按钮向视觉用户或屏幕阅读器发出一个抽象动作即将发生的信号,而不仅仅是导航


    例如,您不会希望在“新选项卡”中打开“注销”链接。按钮有助于暗示额外的含义。

    谢谢Pekka,非常感谢它。另外,如果您使用GET变量实现注销功能,某人可以向登录您网站的人发送一条带有img标签的消息,这将使此人注销哈哈。不是真正的安全风险,但很有趣。@dqhendricks说得很好。值得注意的是,对于一个由用户生成的大型社区网站content@dqhendricks@Pekka:“特权”操作(在这种情况下注销)应受到CSRF的保护。此类保护将导致此类攻击失败。链接:任何人都不应该将$\u请求或$\u GET数组用于任何“priviledged”对象。实际理由:预缓存。当谷歌发布一个时,许多论坛发现管理员查看的每一篇帖子都被删除了,因为他们使用的是链接而不是表单。