繁体   English   中英

将$ _GET放在标题中是否安全? (PHP)

Is putting $_GET in headers safe? (PHP)

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

在我的profile.php脚本中,我具有标志功能,该功能允许用户标记该用户。

如果他们标记用户,它将数据( user_idreason等)发送到名为flag.php的文件,该文件将执行所有禁止和填充操作。 数据通过以下方式发送到flag.php

header("Location: flag.php?user_id=___&reason=___")

然后在flag.php ,在执行所有禁止之后,它通过另一个标头将用户重定向回配置文件。 用户永远不会看到flag.php

我的flag.php安全吗? 因为他们从不看脚本?

编辑您永远不要以为它是安全的...去做一个banuser功能或通过会话发送它。

8 个回复

不。 该URL将记录在浏览器的历史记录中,并且由于user_id参数,刚被禁止的用户将能够禁止任何他们想要禁止的用户。 我建议您创建一个函数ban_user($user_id,$reason)

304-redirect必须通过客户端,因此用户可以监视HTTP消息并学习如何控制flag.php

如果必须在新页面中使用$_SESSION呢?

不安全 如果知道位置(通过使用工具检查标题/请求很容易),则只需在URL中输入flag.php?user_id=1&reason=bye即可禁止想要的用户。 甚至可以编写一个脚本,从用户ID 1到100000循环执行此操作。

您需要在独立的脚本中执行此操作,该脚本包含在主PHP脚本中,而不是通过HTTP请求。 确保用户身份验证也很可靠。

默默无闻的安全性(就像看不到脚本一样)是一件坏事。 如果这是一个受欢迎的页面,人们会在系统中寻找方法,聪明的人会尝试弄乱输入内容!

如果他们决定通过输入“ HACK ATTEMPT!&user_id = [root_id]”来重写某些网址变量,该怎么办?

PHP可能只是使用找到的第一个“ user_id”,但是您可以看到它的运行方向。

您的代码应检查是否:

  1. 进行标记的用户已登录
  2. 进行举报的用户直接访问了flag.php页面
  3. 进行举报的用户在最近几分钟内举报了nn人

是否有某些原因导致您不能不使用重定向就将数据发布到flag.php,然后将其重定向回它们所在的位置(如果确实存在,那么它们不仅在滥用flag.php)?

如果您发现异常行为,我还建议您在此过程中输入验证码。

无论如何,不​​,它不安全。 它只是要求虐待。

这是完全不安全的。 可以使任何用户违背其意愿禁止任何其他用户。 研究CSRF的攻击和防御。 放掉重定向的东西,那是毫无意义的。 我什至不确定您要使用它实现什么。 如果用户将请求发送到标记链接指向的任何地方,而不是伪造直接请求,您的状况会更好吗? 我不这么认为。

否。由于其他答案中提到的原因,您的脚本并不安全。

不过,一种解决方案-以及我在某些情况下使用的解决方案,也需要唯一ID作为参数。 例如:

flag.php?user_id=_______&reason=______&special_id=36a678dabc6d78a6db

special_id仅对禁止ID为user_id的用户有效。

该ID仅对一种用途有效-并且仅对指定的ID有效。

如果我在开头放置了一个函数,以确保登录的人是管理员,如果是,它将执行脚本。 但是,如果登录的人不是管理员,它将重定向到主页。

这样可以安全使用GET吗?

1 将const放在标题中

从我正在阅读和测试的所有内容中,没有办法(没有预处理器宏)在共享头中定义常量,并确保每个TU不为该常量创建自己的存储。 我可以做这个: const int maxtt=888888; 这完全相同: static const int maxtt=888888; 如果此 ...

2013-01-20 22:56:20 5 479   c++
2 将菜单放在标题中

我有以下几点: HTML: CSS: 参见: 小提琴 我想在中间部分的橙色部分放置一个水平菜单,在黄色部分放置另一个水平菜单; 我尝试了这个: HTML: 添加了CSS: 参见: 小提琴 但是没有没有成功,请帮助! ...

2014-02-16 09:32:00 1 90   html/ css
3 在标题中定位图像

我想将图像定位在标题内。 目前,显示图像的顶部,我想显示图像的中间部分。 top属性使图像剪辑在父框上。 请看一下我的代码。 HTML: <body> <header class="header"> <div class="header-i ...

2021-04-11 11:55:41 2 31   html/ css
4 为什么我们将jQuery放在标题中?

我遇到的每个教程都说以确保您在标题中调用jQuery: 即使您只想在一页上使用它。 如果只想在一个页面上使用jQuery,为什么要让它放在标题中并加载到网站的每一页上? 我是菜鸟,所以问一下。 ...

2011-11-27 19:44:00 6 104   jquery
5 PHP - 如何将 X-CSRF-TOKEN 放在标题中?

如何将$token或x-csrf-token 放入标头? 当我手动将x-csrf-token放在标题中时,curl 帖子有效。 我应该怎么做才能将$token或x-csrf-token自动放入标题? 当我制作一个获取令牌的新 curl 帖子并且当我将令牌自动放在标头上时,curl 的响应是40 ...

2020-02-23 08:29:12 1 1259   php/ curl
7 如何显示标题中的wordpress页面,来自php $ _GET值

我正在尝试使用Wordpress和php g php $ _GET值创建一个自动页面。 我有一个导航栏,它创建如下链接:photobooks.php?year = 2012然后,我希望wordpress查找具有该标题的页面并显示它。 我已经找到了此代码,但似乎无法正常工作。 ...

8 将变量放在标题中的位置?

我需要能够从wager.cpp访问在mainwindow.h中声明的QList<QRadioButton *> colorList colorList。 我将在这里展示我目前的尝试。 mainwindow.h 错误:LNK2005:“class QList col ...

10 将行数放在节标题中

我需要在节标题中包括行数,例如TODAY(6),这意味着在标题为TODAY的节中有6行(本例中为核心数据对象)。 我知道可以在这里找到: 但是我不知道如何在每个部分中包含此内容以显示为标签文本。 欢迎任何建议。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM