【问题标题】:GET vs POST vs SESSION in Backend App [closed]后端应用程序中的 GET vs POST vs SESSION [关闭]
【发布时间】:2013-03-21 13:55:58
【问题描述】:

您好,感谢您抽出宝贵时间。我正在开发一个网络应用程序,我的登录客户将能够在其中观看视频课程。现在我正在使用 GET 通过 URL 传递有关视频类型的信息。例如:

用户 1 有硕士课程 ->>>> URL = curso.php?page=master

用户 2 有基础课程 ->>>> URL = curso.php?page=basic

你看,我认为这里有一个安全问题,因为如果用户 2 输入他的 URL“page=master”,他将能够观看不允许他观看的视频。

所以我正在为每个页面编写安全检查,以查看用户 ID 可以访问所需页面的 ID。

但我认为这是太多无用的工作。如果我在我的按钮上使用 POST 方法,并通过 POST 提交数据,那么假设给定用户将无法看到不适合他的内容是否完全安全?毕竟,URL 总是一样的,比如 curso.php。

还有使用 Session 的可能性,但我可以用提交按钮或类似的东西定义一个 Session 值吗?

我知道,我知道,很多新手问题,但这只是我的第二个后端系统,我想在这里错过很多安全实践。

将不胜感激任何帮助或提示。

非常感谢,对不起我的英语不好。

【问题讨论】:

  • 这是一个主观问题,您可以通过很多方法阻止用户访问 url 中的内容
  • 使用 get 以便用户可以为您的页面添加书签。

标签: php security session post get


【解决方案1】:

所以我正在为每个页面编写安全检查,以查看用户 ID 可以访问所需页面的 id。

很好。这就是你需要做的。在向用户展示任何数据之前,请检查他们是否有权查看。

但我认为这是太多无用的工作。如果我在我的按钮上使用 POST 方法,并通过 POST 提交数据,那么假设给定用户将无法看到不适合他的内容是否完全安全?毕竟,URL 总是一样的,比如 curso.php。

在大多数浏览器中,只需不到六次点击即可检查用于发出请求的发布数据。 POST 不会对用户隐藏任何内容,它只是避免在用户面前挥舞它。

还有使用 Session 的可能性,但是我可以用提交按钮或类似的东西定义一个 Session 值吗?

您不能在客户端定义会话值。数据必须在请求中发送到服务器。

【讨论】:

  • 感谢 Quentin,在学习如何实现 HTTPS 和 SSL 之前,将逐页检查系统。
  • SSL 将保护来自第三方的数据。它不会对发送它的人隐藏它。
【解决方案2】:

POST 与 GET 一样不安全。 POST 不能用于提高安全性。您必须根据当前登录的用户信息对服务器进行检查。因此请使用 GET,因为这是 HTTP 的设计使用方式,并对服务器进行必要的检查。

你需要某种身份验证才能做你想做的事。

【讨论】:

    【解决方案3】:

    仅使用 POST 进行中继绝对不安全。例如,您可以使用 REST 工具轻松启动 POST 请求。

    我不知道您是否使用了底层框架(我建议您这样做,因为您基本上是在要求用户权限管理),但如果不是,我可能会将权限保存在 User 类或会话中并检查根据给定的参数。

    基本上,使用 POST 或 GET 并不重要。但是 HTTP 表示,如果您想从服务器检索数据,则使用 GET;如果您想向服务器发送数据,则使用 POST。

    所以使用 GET 并为自己编写一个不错的类,其中存储了经过身份验证的用户的权限,并检查用户是否能够检索所需的内容。

    【讨论】:

    • 创建一个包含<form method="post" action="desired_page"><input type="hidden" name="page" value="master" /><input type="submit" /></form> 的简单HTML 文件也很容易,您无需使用任何工具来发送post 变量,只需一个记事本和浏览器即可:-)
    • 确实是这样,只是想说明 POST 并不是什么无形的魔法。
    【解决方案4】:

    无论如何,与GET 相比,SessionPOST 都会大大提高您的安全性,这是肯定的。但是您仍然需要在您的页面上进行检查

    【讨论】:

    • 看不到 URL 中的 POST 数据并不意味着它神奇地隐形到达了服务器。
    • 这与您如何发送和接收数据无关。这是服务器端安全检查的问题。
    • 我只是说GET 是最糟糕的情况,如果您想阻止用户访问未经授权的页面。不是每个人都知道如何调整 POST 值,而任何用户都可以清楚地看到如何修改 URL
    • 什么是 hack .. 请求和发布与获取 to know difference see this 一样不安全
    • 那句话甚至没有意义。请求和发布与发布相同...?不过,我会读这篇文章,似乎很有趣
    猜你喜欢
    • 2012-12-06
    • 2012-09-17
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    相关资源
    最近更新 更多