PHP - 加密安全问题(我是否容易受到攻击?)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP - 加密安全问题(我是否容易受到攻击?)相关的知识,希望对你有一定的参考价值。
我想通过php连接到ssh。我可以轻松地做到这一点,但问题是登录详细信息(用户名,密码)的完整性。当我第一次尝试代码时,我将用户名和密码存储在视线中。我想过加密那些变量。通过查看其他问题,我发现libsodium
:https://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文件的效率如何,是否可以阻止黑客访问数据库连接文件?
答案
- 没有什么是完全防弹的。无论如何,这远非如此。这是你的实施缺乏。首先加密它,然后将加密的消息与密钥一起存储在数据库中。
- 这就是解密它所需的全部内容。因此,任何SQL注入漏洞或服务器/数据库漏洞都可能危及加密消息并使其无效。不要将私钥存储在服务器上;尤其不是它的预期信息。如果你这样做,它只不过是昂贵的明文。
- 甚至不要将数据库连接文件存储在Web根目录中。对于黑客来说,抓住这种方式是微不足道的,查找LFI。您可以将其存储在例如在/ var / www /中,从/ var / www / public /服务你的index.php。
正如评论中所指出的,无论如何你在这里做的事情有点奇怪。使用带有密码短语的SSH密钥可能会好得多。
以上是关于PHP - 加密安全问题(我是否容易受到攻击?)的主要内容,如果未能解决你的问题,请参考以下文章