【问题标题】:Reverse obfuscating plain text string urls in PHP在 PHP 中反向混淆纯文本字符串 url
【发布时间】:2012-04-23 23:54:43
【问题描述】:

我正在尝试找出一种方法来编写一个可以对纯文本网址进行去混淆的函数。

类似这样的:

<input type="hidden" value="kjgajkwe@#jktGAkjgWjkajskd" name="obsfucatedString" />

然后在处理该表单时,我想对其进行 De-Obsfucate:

$url = deObfuscate($_POST['obsfucatedString']);
so $url would become something like:
$url = 'http://domain.com/filename.zip';

这样的事情可能吗?

我试图从普通程序员的视线中隐藏 url。

我想我也需要写一些东西来混淆字符串

所以

$obsfucatedStringURL = obsfucate('http://domain.com/filename.zip');

【问题讨论】:

标签: php deobfuscation url-obsfucation


【解决方案1】:

Encrypt 带有密码的 URL 存储在服务器上(一个好的算法是 AES),然后 decrypt 它在需要时获取值。这样做的一个问题是加密的字符串不会由可打印的字符组成。要解决此问题,请使用base64_encode() 将二进制编码字符串转换为可作为值添加到&lt;input&gt; 字段中的可打印字符,然后使用base64_decode() 在服务器上取回原始值。

【讨论】:

  • 性能方面,当数据不敏感(足够)时,这不是最佳选择。将 bas64 字符串转换为不可解码的东西,比如 strtr 会很酷。 strtr 的问题是,它按串行顺序操作。将 base64 字符转换为所有不同的 url 安全字符,会很好
【解决方案2】:

有许多编码和反转纯文本字符串的方法。混淆字符串的一种简单方法是使用str_rot13 函数一次编码并再次解码(注意:这不会为您提供任何加密安全)。我建议使用 AES 加密,使用存储在服务器上的秘密来加密和解密。以下线程的答案定义了您可以使用的加密/解密函数。

PHP AES encrypt / decrypt

与混淆相比,另一种可能值得考虑的方法是将 URL 服务器端存储为用户会话的一部分或保存在数据库中。然后,不要向下发送混淆字符串,而是使用执行查找的键来检索 URL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 2018-05-16
    • 2010-11-02
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多