如何使用PHP创建安全的web链接?
我正在为一所学校开发一个使用原始PHP的web应用程序。当用户访问学生的个人资料页面时,地址栏上的web链接显示如下-。但我想表现得像这样- 我可以使用base64_encode进行编码,但如果在用户试图查看学生的个人资料时进行编码,则不会显示任何信息 有谁能帮我做这件事吗如何使用PHP创建安全的web链接?,php,security,hyperlink,Php,Security,Hyperlink,我正在为一所学校开发一个使用原始PHP的web应用程序。当用户访问学生的个人资料页面时,地址栏上的web链接显示如下-。但我想表现得像这样- 我可以使用base64_encode进行编码,但如果在用户试图查看学生的个人资料时进行编码,则不会显示任何信息 有谁能帮我做这件事吗 提前感谢在使用studentid之前,您需要在studentid上调用base64_decode 但是,这仍然不安全。base64不是加密,而是一种编码方法。这就像把密码从法语翻译成德语一样安全,前提是德国人不会说法语 为
提前感谢在使用studentid之前,您需要在studentid上调用base64_decode
但是,这仍然不安全。base64不是加密,而是一种编码方法。这就像把密码从法语翻译成德语一样安全,前提是德国人不会说法语 为了正确地保护它,您需要使用库进行正确的加密。由于加密数据不与其他人共享,因此可以将使用的加密/解密密钥硬编码到脚本中
以加密ID值产生的二进制垃圾为例,然后对其进行base64编码,以便将其安全地放入URL中。然后将其从URL中取出时,再次通过base64_decode和mcrypt传递。您在对该问题的评论中添加了更多信息: 我有一个页面,其中显示了列表中所有学生的姓名,如果我点击其中任何一个,它会将我带到该特定学生的个人资料页面,因为我这样编码-“>当该学生的个人资料页面出现时,我在地址栏上找到如下链接-
http://localhost/utc/studentprofile.php?studentid=11100103
我希望链接看起来像http://localhost/utc/studentprofile.php?studentid=Adz2457cxfgga&&sas
而不是显示准确的学生ID
那么Base64编码不是这样做的,因为它对保护学生的ID几乎没有任何作用
如果你想避免透露学生的身份证,没有比不透露更安全的方法了。您还有机会为学生档案页面提供更可读的URL:
在服务器端创建一个简单的映射数据库表。给每个学生一个独特的“把手”(例如,我的可能是“tjcrowder”,除非也有我名字的牛饲料商人以前去过学校,在这种情况下,我可能是“tjcrowder2”)。将句柄建立在您已经在个人资料页面上显示的信息上(例如,我假设这些页面列出了学生的姓名)
然后你的链接变成
http://localhost/utc/studentprofile.php?studentid=tjcrowder
甚至更好
http://localhost/utc/studentprofile.php?tjcrowder
或者更好的是,对其进行URL重写,这样您就可以
http://localhost/utc/students/tjcrowder
在studentprofile.php
中,执行DB查询以获取句柄并查找学生ID,然后检索学生的配置文件信息
很好的可读URL,没有显示学生ID。你能澄清这个问题吗?根本不清楚您在问什么,尤其是因为Base64编码中的
11100103
是MTExMDAxMDM=
,而不是。I1vlXKbsAAljiXXX4ylPpWER1D8re93AA--
。但除此之外,还不清楚链接来自何处(Base64编码并不“安全”)。Crowder,我有一个页面,它显示列表中所有学生的姓名,如果我点击其中任何一个,它会将我带到该特定学生的个人资料页面,因为我这样编码-当该学生的个人资料页面出现时,在地址栏上,我找到这样的链接-我希望链接看起来像,而不是显示确切的学生ID。谢谢:)非常感谢你的帮助。:)