关于地址栏带token的URL,如何优化呢?大神来

狄默默斯基 2016-03-21 10:52:07
例如:
一个后台删除按钮,如果我的后台写了
<a href="leave_delete.php?id=22">删除</a>

问题1:这是url,不是表单提交,这种url会构成CSRF攻击吗?安全吗?

如果我写了 <a href="leave_delete.php?id=22&token=ff9ad7a141bad1256bd8f82e51b11fe9">删除</a>

问题2:
和第一种相比,优势在什么地方?
如何优化第2种写法?
...全文
4971 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-03-21
  • 打赏
  • 举报
回复
CSRF攻击 是利用常规的链接盗取 cookie,从而设法入侵的一种攻击行为 token 是变化的,可通过多个渠道传递的 服务端在检查 cookie 的合法性时,还同时检查 token 的合法性 这就减少了被攻击的可能性 当然,如果你在 url 中放静态的 token,那显然是画蛇添足了
狄默默斯基 2016-03-21
  • 打赏
  • 举报
回复
引用 3 楼 oggmm 的回复:
服务端的代码在进行删除前做一些权限验证就可以了 url要不要带token不影响安全验证 比如你的登录状态和权限记录在session 那url就第一种就行了,服务端代码进行登录验证,然后再对该用户是否有该删除权限进行验证。
主要问题是恶意用户可能诱导小白站长, 举例<a href="leave_delete.php?id=22">删除</a>这个来说, 服务端验证必须是管理员登录才有效, 那么恶意用户可以给你发个恶意删除某篇文章的url,<a href='恶意url'>快速致富之道</a>, 小白用户此时如果在登录状态,那么一点击就删除成功了,万一没备份就完蛋了。
oggmm 2016-03-21
  • 打赏
  • 举报
回复
服务端的代码在进行删除前做一些权限验证就可以了 url要不要带token不影响安全验证 比如你的登录状态和权限记录在session 那url就第一种就行了,服务端代码进行登录验证,然后再对该用户是否有该删除权限进行验证。
狄默默斯基 2016-03-21
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
加上 token 的目的就是为了防止 CSRF攻击
版主,第一种写法安全吗
xuzuning 2016-03-21
  • 打赏
  • 举报
回复
加上 token 的目的就是为了防止 CSRF攻击
oggmm 2016-03-21
  • 打赏
  • 举报
回复
引用 4 楼 xjl756425616 的回复:
[quote=引用 3 楼 oggmm 的回复:] 服务端的代码在进行删除前做一些权限验证就可以了 url要不要带token不影响安全验证 比如你的登录状态和权限记录在session 那url就第一种就行了,服务端代码进行登录验证,然后再对该用户是否有该删除权限进行验证。
主要问题是恶意用户可能诱导小白站长, 举例<a href="leave_delete.php?id=22">删除</a>这个来说, 服务端验证必须是管理员登录才有效, 那么恶意用户可以给你发个恶意删除某篇文章的url,<a href='恶意url'>快速致富之道</a>, 小白用户此时如果在登录状态,那么一点击就删除成功了,万一没备份就完蛋了。[/quote] 你可以加上来源判断,以保证删除动作是在本网站触发

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧