在get方法中为安全性观点显示数据库值是不好的做法? 例如: - 'http://example.com/user/id/10'其中10从数据库中获取值。
请有人建议我采用标准的编码和解码算法,它采用两个参数(编码和解码),以便一个可以作为变量存储在php文件(或数据库)中,另一个参数是一个字符串被编码或解码。
提前谢谢
答案 0 :(得分:0)
我会回答你问题的第一部分:
显示数据库是一种不好的做法 get方法中的值为安全性 观点看法?例如:- 'http://example.com/user/id/10'在哪里 10从数据库中获取价值。
不是真的,这取决于“页面”对id / 10的作用。如果您只是显示用户信息(个人资料),有什么危害?但是,如果您想要屏蔽您的URL,那么这一切都取决于您。我已经看到使用加密屏蔽,但是我很好奇为什么你认为URL会“有害”?你不想让用户看到id = 10吗?我会专注于使该页面上的php / sql查询安全,而不是增加额外的开销来加密无害的东西(从我的角度来看)。
修改强>
为简单起见,您可以使用php函数base64_encode
并解码:http://us.php.net/manual/en/function.base64-encode.php
那应该给你足够的。但我真的会考虑为什么你想首先隐藏它,通常“易于阅读”的网址总是一个奖励,特别是在搜索引擎优化方面。
答案 1 :(得分:0)
唯一的风险是,如果您没有正确设置网站权限安全设置。按数据库ID匹配您的数据很好,它很容易理解。如果有人想要抓取您的所有数据,他们只需要增加网址。
如果您不希望人们访问某些“ID”,请确保他们拥有正确的登录凭据才能看到该页面。
现在,如果您想轻松加密/解密,请查看使用md5哈希:http://php.net/manual/en/function.md5.php