PHP - 加密安全问题(我是否容易受到攻击?)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP - 加密安全问题(我是否容易受到攻击?)相关的知识,希望对你有一定的参考价值。

我想通过php连接到ssh。我可以轻松地做到这一点,但问题是登录详细信息(用户名,密码)的完整性。当我第一次尝试代码时,我将用户名和密码存储在视线中。我想过加密那些变量。通过查看其他问题,我发现libsodiumhttps://github.com/jedisct1/libsodium-php

我正在使用他们的第一个加密字符串的例子:

$secret_key = sodium_crypto_secretbox_keygen();
$message = 'Sensitive information';

$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$encrypted_message = sodium_crypto_secretbox($message, $nonce, $secret_key);

Decryption:

$decrypted_message = sodium_crypto_secretbox_open($encrypted_message, $nonce, $secret_key);

通过查看示例,您可以看到$encrypted_message$secret_key$nonce。我在加密登录详细信息时将这些变量插入数据库中,然后在需要时在解密代码中获取它们。

我还将我的数据库连接脚本(PDO)存储在一个文件夹中,其中有一个.htaccess文件,其中包含以下内容:

order deny,allow
deny from all
allow from 127.0.0.1

1.我的方法是否安全且防黑客?

2.如果有人违反我的数据库,他们是否能够使用我的用户数据?

3. .htaccess文件的效率如何,是否可以阻止黑客访问数据库连接文件?

答案
  1. 没有什么是完全防弹的。无论如何,这远非如此。这是你的实施缺乏。首先加密它,然后将加密的消息与密钥一起存储在数据库中。
  2. 这就是解密它所需的全部内容。因此,任何SQL注入漏洞或服务器/数据库漏洞都可能危及加密消息并使其无效。不要将私钥存储在服务器上;尤其不是它的预期信息。如果你这样做,它只不过是昂贵的明文。
  3. 甚至不要将数据库连接文件存储在Web根目录中。对于黑客来说,抓住这种方式是微不足道的,查找LFI。您可以将其存储在例如在/ var / www /中,从/ var / www / public /服务你的index.php。

正如评论中所指出的,无论如何你在这里做的事情有点奇怪。使用带有密码短语的SSH密钥可能会好得多。

以上是关于PHP - 加密安全问题(我是否容易受到攻击?)的主要内容,如果未能解决你的问题,请参考以下文章

PHP安全之Web攻击

PHP安全之web攻击

为啥一个简单的 PHP 包含文件容易受到攻击

Symfony漏洞让Drupal站点容易受到黑客攻击

黑客已经瞄准5G网络,如何防止LTE网络攻击?

JSON Web 服务是不是容易受到 CSRF 攻击?