繁体   English   中英

PHP中的编码和解码算法

[英]encoding and decoding algorithms in php

从安全角度来看,在get方法中显示数据库值是一种不好的做法吗? 例如:-'http://example.com/user/id/10',其中10从数据库中获取值。

请任何人向我建议一种标准的编码和解码算法,该算法需要两个参数(用于编码和解码),以便一个可以作为变量存储在php文件(或数据库)中,另一个可以作为要编码的字符串或解码。

先感谢您

我会回答您问题的第一部分:

从安全角度来看,在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

那应该给你足够的。 但是我真的会想到为什么要首先将其隐藏,通常“易于阅读”的URL总是有好处的,尤其是在搜索引擎优化方面。

唯一的风险是,如果您没有正确设置网站权限安全性。 按数据库ID匹配数据很好,这很容易理解。 如果有人想抓取您的所有数据,他们要做的就是增加url。

如果您不希望人们能够访问某些“ id”,只需确保他们具有正确的登录凭据即可查看该页面。

现在,如果您想轻松地进行加密/解密,请研究使用md5散列: http : //php.net/manual/zh/function.md5.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM