检索$_POST数据以在不使用本地化脚本的情况下发送到Java脚本

时间:2016-11-02 作者:GreyWolfram

在这里,我需要访问$\\u POST数据,以便向javascript发送敏感字符串,而不使用本地化脚本,也不允许敏感字符串在页面的控制台或源(html)中可用。

我研究过AJAX可以防止来自PHP的敏感字符串显示在页面源代码(html)上,因为这会给我们带来安全问题,但当我尝试这种方法时,全局$\\u POST在连接到wp\\U AJAX\\uu{action}的AJAX函数上不可用。

还有其他方法吗?任何帮助都将不胜感激,谢谢!

UPDATE 哦,顺便说一句,在数据库中保存数据不是一个选项,因为这将在站点上提供功能,将积累大量的请求。

1 个回复
最合适的回答,由SO网友:jgraup 整理而成

您可以使用set_transient 将临时数据写入数据库get_transient 将值读回。这会将数据保留在服务器上,并在请求之间可用。有点像nonce. 请记住,当您拥有大量用户时,向数据库中写入数据可能会造成问题。

如果要将散列数据从PHP传递到Javascript,可以使用Hashids -- 假设您的数据是数字正数。

PHP

$hashids = new Hashids\\Hashids(\'this is my salt\');
$id = $hashids->encode(1, 2, 3);
$numbers = $hashids->decode($id);

JavaScript

var hashids = new Hashids("this is my salt"),
id = hashids.encode(1, 2, 3),
numbers = hashids.decode(id);
如果您在JavaScript中的任何地方解码,那么可能会有人获得salt,因此最好只将其用于传输数据。

如果你想要一些随机的盐,有一个online generator 或使用wp_salt(). 你也可以看看wp_create_nonce() 通过将登录用户的ID添加到salt中来工作。

备选方案-某些站点warn 反对使用MD5 而其他人则显示哈希openssl.