我有一个简单的应用程序需要在Wordpress安装中存储敏感数据。
数据来自用户通过表单,到目前为止,我一直使用server {
# if no Host match, close the connection to prevent host spoofing
listen 80 default_server;
return 444;
}
存储数据,但是当我们接近启动此项目时,我想确保敏感的用户信息是加密的,只有在阅读时才会被解密。
我不知道如何使用$wpdb->insert
类来完成这项工作,因此我使用$wpdb
来使用此组件。到目前为止,我运行mysqli
语句来插入所有正常数据,然后打开一个新连接以尝试插入敏感数据。
$wpdb->insert
这似乎工作正常,除了所有值始终编码为单个字符,然后解码为$id = $wpdb->insert_id;
$servername = 'localhost';
$username = 'root';
$password = 'root';
$db = 'wp_database';
$conn = new mysqli( $servername, $username, $password, $db );
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Fetch Data and store it
$sud = $form['sens_user_data'];
$key = 'mysecretkey';
$tbl = $wpdb->prefix . 'sensitive';
$sql = "UPDATE $tbl SET sens_user_data = AES_ENCRYPT(?, ?) WHERE id = ?";
if ( $stmt = $conn->prepare($sql) ) {
$stmt->bind_param('ssi', $sud, $key, $id);
$stmt->execute();
} else {
$error = $conn->errno . ' ' . $conn->error;
ChromePhp::log($error);
}
$conn->close();
我做错了什么?