嗨,谢谢你的时间。我正在开发一个网络应用程序,我的登录客户将能够观看视频课程。现在我正在使用GET通过URL传递有关视频类型的信息。例如:
用户1拥有硕士课程 - >>>> URL = curso.php?page = master
用户2有基本课程 - >>>> URL = curso.php?page = basic
你知道,我认为这里存在安全问题,因为如果用户2输入他的网址“page = master”,他将能够观看他不允许的视频。
所以我正在为每个页面编写一个安全检查,以查看用户ID可以访问所需页面的ID。
但我认为这是无用的工作。如果我在我的按钮上使用POST方法,并通过POST提交数据,那么假定给定用户不能看到不适合他的内容是否完全安全?毕竟,URL将始终相同,类似于curso.php。
有可能使用Session,但是我可以使用提交按钮或类似的东西定义会话值吗?
我知道,我知道,很多新手问题,但这只是我的第二个后端系统,而且我在这里错过了很多安全措施。
欢迎任何帮助或提示。
非常感谢,抱歉我的英语不好。
答案 0 :(得分:4)
所以我正在为每个页面编写安全检查,以查看用户ID可以访问所需页面的ID。
好。这就是你需要做的。在向用户显示任何数据之前,请检查他们是否有权查看该数据。
但我认为这是无用的工作。如果我在我的按钮上使用POST方法,并通过POST提交数据,那么假定给定用户不能看到不适合他的内容是否完全安全?毕竟,URL将始终相同,如curso.php。
在大多数浏览器中,只需不到6次点击即可检查用于发出请求的帖子数据。 POST不会向用户隐藏任何内容,只是避免在脸上挥动它。
并且可以使用Session,但是我可以使用提交按钮或类似的东西定义会话值吗?
您无法定义会话值客户端。必须在请求中将数据发送到服务器。
答案 1 :(得分:3)
POST与GET一样不安全。 POST不能用于增加安全性。您必须根据当前登录的用户信息对服务器执行检查。因此,请使用GET,因为这是设计使用HTTP的方式,并在服务器上进行必要的检查。
您需要某种身份验证才能执行所需的操作。
答案 2 :(得分:2)
只是继续使用POST绝对不安全。例如,您可以使用REST工具轻松启动POST请求。
我不知道你是否正在使用底层框架(我建议这样做,因为你基本上要求用户权限管理),但如果不是,我可能会保存用户类或会话中的权限并检查反对给定的参数。
基本上,如果使用POST或GET,则无关紧要。但HTTP表示,如果要从服务器检索数据,则使用GET,如果要将数据发送到服务器,则使用POST。
因此,请使用GET并为自己编写一个很好的类,其中存储经过身份验证的用户的权限,并检查用户是否能够检索所需的内容。
答案 3 :(得分:-3)
无论如何,与Session
相比,POST
和GET
对您的安全性都有很大改善,这是肯定的。但是你仍然需要在你的页面上检查