小编Ben*_* CA的帖子

使用PHP安全地加密MySQL数据库中静止的客户详细信息

我正在使用PHP开发一个应用程序,该程序将一些客户详细信息存储在MySQL数据库中。(姓名,电子邮件地址,电话号码,邮寄地址)我没有存储任何“敏感”信息,例如银行/信用卡详细信息,SSN / SIN,DOB等。仅是基本的客户详细信息。

但是,尽管显然会采取安全预防措施,但如果黑客获得了数据库的副本,我希望有一种体面且相对简单的方法来使此数据非常难以使用(通过对其进行加密)。

我已经读到,在MySQL查询中执行加密的安全性较低,因为加密密钥将缓存在数据库的查询日志中。

因此,建议这样:

UPDATE customers SET email = AES_ENCRYPT('me@gmail.com', SHA2('encryption key here', 512));
Run Code Online (Sandbox Code Playgroud)

我已经看过关于堆栈溢出的许多问题以及其他资源。但是,许多建议至少有5年的历史了,现在PHP 7.2(及更高版本)可能会有更简单的最佳实践。

我研究过Defuse,但是我倾向于避免在我不是绝对需要它们的地方使用第三方库。(我更喜欢理解代码并将其最小化,以满足我的需求。)

在查看PHP文档(https://www.php.net/manual/zh/function.openssl-encrypt.php)时,我发现该用户提供了建议,该建议看起来很容易实现:

--- Create Two Random Keys And Save Them In Your Configuration File ---
<?php
    // Create The First Key
    echo base64_encode(openssl_random_pseudo_bytes(32));

    // Create The Second Key
    echo base64_encode(openssl_random_pseudo_bytes(64));
?>
--------------------------------------------------------
<?php
    // Save The Keys In Your Configuration File
    define('FIRSTKEY', 'Lk5Uz3slx3BrAghS1aaW5AYgWZRV0tIX5eI0yPchFz4=');
    define('SECONDKEY', 'EZ44mFi3TlAey1b2w4Y7lVDuqO+SRxGXsa7nctnr/JmMrA2vN6EJhrvdVZbxaQs5jpSe34X3ejFK/o9+Y5c83w==');
?>
--------------------------------------------------------
<?php
    function secured_encrypt($data)
    {
        $first_key = base64_decode(FIRSTKEY);
        $second_key = …
Run Code Online (Sandbox Code Playgroud)

php encryption

2
推荐指数
1
解决办法
404
查看次数

能够使用 Bull 在 Redis 队列上设置 TTL?

我有一个使用 Bull 进行队列的应用程序。是否有一个参数可以传递给它,以便在创建每个条目时自动为其设置 TTL(生存时间)?

const Queue = require('bull')
const webApiQueue = new Queue('webApi', {redis: REDIS_URL })

// Producer
const webApiProducer = (data) => {
  webApiQueue.add(data, { lifo: true })
}
Run Code Online (Sandbox Code Playgroud)

如果直接使用 Redis 设置密钥,则可以使用setex key_name 10000 key_data

但是我怎样才能在 Bull 中实现这样的功能呢?它只是一个 API 处理队列,我希望它在 24 小时后自动删除条目。

我在文档中没有看到任何内容: https ://github.com/OptimalBits/bull#documentation

ttl redis node.js bull

1
推荐指数
1
解决办法
2063
查看次数

标签 统计

bull ×1

encryption ×1

node.js ×1

php ×1

redis ×1

ttl ×1