gpt4 book ai didi

php - 如何用php加密帖子上的数据

转载 作者:搜寻专家 更新时间:2023-10-31 21:31:13 24 4
gpt4 key购买 nike

我阅读了一些关于如何使用 PHP 对 HTML 后的数据进行加密的文章。但我真的不知道必须怎么做。

我解释了我的简单示例。

我有一个仪表板,用户可以在其中查看他们的安装。想想很多安装,每个都属于不同的用户。一些安装了 1 次,一些安装了 5 次。

事实上,我开发了一个按钮来从他们的安装中下载 Excel 信息。

我已经完成了一个 $_GET['idInstalacion'] 的 contactosDownload.php,所以在主仪表板上按钮看起来像:

 <a href="contactosDownload.php?idInstalacion=
<? echo $idInstalacionPOST ?>"
class="btnDownload btn-success btn btn-info pull-left">
<i class="fa fa-download"></i>&nbspDescargar
</a>

它运行良好,当按下按钮时,contactosDowload 获取 idInstalacion 并执行 mysql 选择,然后下载包含安装信息的 Excel。 PHPExcel 完美地完成了这项工作。

即使因为这个拥有三个安装的用户可以选择其中一个安装并且信息是用 Ajax 更新的,所以我有一个 jquery 更新:

 $('#InstaSelect').change(function(e) {
e.preventDefault();
.....
$('.btnDownload').attr("href", "contactosDownload.php?idInstalacion="+idInstalacion);
....
});

这也很有效。

就像你们所有人都认为发送 id 并不是一个聪明的主意。即使有人获得链接也可以开始检索数据:

 http://www.aaaaa.com/contactosDownload.php?idInstalacion=1
http://www.aaaaa.com/contactosDownload.php?idInstalacion=2

等等。

解密和解密信息并确保帖子信息安全的最佳选择是什么?

谢谢

编辑:

我忘了告诉用户他们的用户名和密码是授权的。当所有用户登录时,我用 var session 存储他们。

 $user_browser = $_SERVER['HTTP_USER_AGENT']; // Get the user-agent string of the user.
$dbid = preg_replace("/[^0-9]+/", "", $dbid); // XSS protection as we might print this value
$_SESSION['user_id'] = $dbid;
$_SESSION['login_string'] = hash('sha512', $tContra.$user_browser);
$_SESSION['ultimoAcceso'] = date("Y-n-j H:i:s");
$_SESSION['tTipoUsuLogged'] = $tTipo;
$_SESSION['tRolUsuLogged'] = $tRolUsuario;
$_SESSION['tEmail'] = $tUseNam;

并且每个 php 都有(包括“validateSesion.php”)来验证用户和 tiemout。

所以现在我在 contactosDownload 上引入了这个验证,如果用户未被识别,/index.php(登录)出现。

第一级得到了。

现在我必须对帖子中的 ID 进行编码,并检查 SESSION 用户是否有下载安装的权限。

用什么来加密/解密 id:

 function encryptor($action, $string) {
$output = false;

$encrypt_method = "AES-256-CBC";
//pls set your unique hashing key
$secret_key = 'long logn text secret';
$secret_iv = '1a2b3c4d5e';

// hash
$key = hash('sha256', $secret_key);

// iv - encrypt method AES-256-CBC expects 16 bytes - else you will get a warning
$iv = substr(hash('sha256', $secret_iv), 0, 16);

//do the encyption given text/string/number
if( $action == 'encrypt' ) {
$output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
$output = base64_encode($output);
}
else if( $action == 'decrypt' ){
//decrypt the given text/string/number
$output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
}

return $output;
}

最佳答案

首先要确保您的 URL is encoded ,所以它不那么容易阅读。

我的第二个建议是使用 honeypot .

最后,如果数据特别敏感(如财务数据),那么我建议完全放弃 ID,并使用可以在幕后映射到 ID 的哈希。

关于php - 如何用php加密帖子上的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29879277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com