2013-03-21 59 views
0

嗨,感谢您的时间。我正在开发一个网络应用程序,我的登录客户将能够观看视频课程。现在我使用GET通过URL传递关于视频类型的信息。例如:?在后端应用程序中获取vs发布vs会话

用户1具有MASTER课程 - >>>> URL = curso.php页=主

用户2具有基本课程 - >>>> URL = curso.php页=基本

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

因此,我要为每个页面编写安全检查,以查看该用户标识可以访问所需页面的标识。

但我认为这太没用了。如果我在按钮上使用POST方法,并通过POST提交数据,那么假定给定用户无法看到不适合他的内容,是否完全安全?毕竟,URL总是相同的,就像curso.php。

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

我知道,我知道很多新手的问题,但这只是我的第二个后端系统,我填补了像缺少很多安全实践的地方。

将感谢任何帮助或提示。

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

+0

这是一种主观性问题,有很多事情可以通过它阻止用户访问url中的内容 – 2013-03-21 14:04:29

+0

使用'get'可以让用户为您的页面添加书签。 – Voitcus 2013-03-21 14:05:00

回答

4

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

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

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

在大多数浏览器中,只需少于六次的点击来检查用于发出请求的发布数据。 POST对用户隐藏任何东西,它只是避免在他们的脸上挥动它。

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

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

+0

感谢Quentin,一直保持检查系统的页面,直到学习如何实现HTTPS和SSL。 – 2013-03-21 14:33:35

+0

SSL将保护来自第三方的数据。它不会将它从发送它的人中隐藏起来。 – Quentin 2013-03-21 14:34:02

2

只是继续使用POST是绝对不安全的。例如,您可以使用REST工具轻松启动POST请求。

我不知道你是否使用底层框架(我会推荐这个,因为你基本上是要求用户权限管理),但如果不是,我会明显地将权限保存在用户类或会话中,并且检查给定的参数。

基本上,如果您使用POST或GET,没关系。但是HTTP说,如果你想从服务器检索数据并使用POST,那么你使用GET,如果你想发送数据到服务器。

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

+1

也很容易创建一个简单的HTML文件,其中包含“

'你不必使用任何工具发送'post'变量,只是一个记事本和浏览器:-) – Voitcus 2013-03-21 14:03:40

+0

这是真的,只是想明确说明POST不是一些看不见的魔法。 – 2013-03-21 14:04:41

-3

在任何情况下,与GET相比,Session和都会对您的安全性有很大提高,这是肯定的。但你仍然需要在你的页面上进行检查,虽然

+1

仅仅因为你无法在URL中看到POST数据并不意味着它奇迹般的无法到达服务器。 – 2013-03-21 14:01:04

+0

这不是你如何发送和接收数据的问题。这是服务器端安全检查的问题。 – mimipc 2013-03-21 14:01:39

+1

我只是说如果你想阻止用户访问未经授权的页面,GET就是最差的。不是每个人都知道如何调整一个POST值,而任何用户都可以清楚地看到如何修改一个URL – 2013-03-21 14:02:35

3

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

您需要某种身份验证才能做到您想要的。