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

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

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

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

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

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

#1楼 票数:6

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

#2楼 票数:0

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

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

#3楼 票数:0

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

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

#4楼 票数:0

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

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

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

#5楼 票数:0

您的代码应检查是否:

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

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

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

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

#6楼 票数:0

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

#7楼 票数:0

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

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

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

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

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

#8楼 票数:0

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

这样可以安全使用GET吗?

  ask by ggfan translate from so

未解决问题?本站智能推荐:

1回复

从GET构造DateTime()是否安全?

以下代码安全吗? AFAIK没有直接的方法将日期格式字符串用于恶意目的。 但是,不同的操作系统可能会有一些特殊性,因此-您是否要添加其他检查以确保日期看起来与yyyy-mm-dd完全一样? 我同时使用PHP5.6和PHP7。
2回复

PHP的file_get_contents是否可安全调用第三方API?

我需要使用PHP调用第三方API( file_get_contents ),解码json响应( json_decode ),然后将结果插入网页中。 我想验证所有这些步骤都不会允许受损的API服务器在我的服务器上执行任意代码。 对于此问题,可以返回恶意HTML / JS是可以的-我的问题严
4回复

PHP安全使用POST而不是GET来防范XSRF?

我的应用程序中有一些像http://mysite.com/module/45/set_name/new-name这样的URL,可以使用ajax访问。 为了防止XSRF,我强制这样的请求是POST请求。 使用GET ,使用以下方法生成XSRF非常简单: 使用POST可以防止这种特殊的攻击
5回复

使用GET/POST数据的“require”是否安全?

使用以下代码是否安全:
6回复

PHP安全性-GET变量,URL安全吗?

我正在创建一个非常基本的iPhone模拟器,而我想要做的就是将其放在一个位置,然后在我们拥有并想要放置它的任何站点上,都可以使用以下网址来调用它: http://www.example .com / iphone-test.php?url = http://www.example.com/mob
2回复

PHP:如果您使用preg_replace只允许以下-A-Za-z0-9_,则包含基于GET变量的文件是否安全?

这有多安全? 我想知道是否需要对$ _GET [“ var”]进行“清理”,而不是让它在尝试包含或不包含file_exists函数之前运行。 这很危险吗? +++更新+++ 谢谢大家的回应! 请参阅下面的更新... 当我调用mrClean替换所有内容时,但以下各项除外:
2回复

PHP会话的cookie是否安全?

我正在努力确保我的会议安全。 在进行一些研究时,我估计基于Agent和IP的PHP的PHPSESSID +随机哈希足以防止劫持。 你能做什么呢,真的。 我正在使用HTTPS进行登录。 据我所知,来自PHP的会话数据永远不会发送给用户,而是存储在服务器端。 客户端仅获取会话的ID。
3回复

如何让$_GET更安全。

我正在使用get方法执行一些操作,例如,批准,markasspam,删除,用于评论系统。 我知道走这条路是非常不安全但我无法帮助它。 因为使用$ _GET方法的原因是使用PHP_SELF在页面本身内执行操作,而FYI我也使用post方法使用复选框来执行操作。 现在为了让它有点安全我想随机