我有一个网站,它是MySQL数据库的前端。此数据也通过Web服务公开(在Android应用程序中使用)。
目前我正在通过PHPMyAdmin维护数据,但这很麻烦而且不是那么好的#34;。
我想在我登录时创建一个/ admin模块(与PHP Varialbe或MySQL表中的值相对应),登录后我可以编辑,删除,添加数据。
问题:
在输入凭据与静态变量进行比较时,在安全性方面是否可以接受?只有一个用户,所以我觉得为成员创建表是一种开销。
关于沿着这条路走下去的任何指导原则?
答案 0 :(得分:0)
考虑查看encryption methods with php的本手册。我的直觉是创建一个用户表,或者至少是一个只包含加密密码的表,而不是仅仅根据值检查变量。
话虽这么说,如果你认为没有人真的会考虑试图愚弄系统并通过它,你可能不需要这么谨慎。我已经构建了一些前端和后端来与数据库进行一些友好的沟通,而且我从来没有经历过相当大的安全压力。
希望这有帮助,如果您对我的设计方式有任何疑问,请随时发送电子邮件至spencer@codeshrub.com
答案 1 :(得分:0)
我认为你没有任何理由不这样做,假设你总是只有一个用户。主要考虑因素是,如果有人以某种方式查看您的代码,他们会看到存储的密码。因此,您可以使用password_hash
存储它来生成单向哈希,然后使用password_verify
进行验证。这是我可能会这样做的:
使用password_hash()生成哈希:
// copy the hash output, then delete this code
echo password_hash("thepassword", PASSWORD_DEFAULT);
然后,在您的代码中,存储哈希:
// paste hash here
$passwordKey = '$2y$10$j33UPA7gNxSOBsXQcyquLOZRuO6X8k8hZOb1RA79iN8gLlqp9eIPO';
然后运行password_verify()检查用户输入:
if (password_verify($userInput, $passwordKey))
echo "correct";
else echo "incorrect";
答案 2 :(得分:0)
如果phpmyadmin安装在你的服务器localy,而不是安全地
您可以使用任何支持ssh连接的MySQL客户端。例如。适用于Mac的Sequel Pro或适用于WIN的HeidiSQL。
此外,您可以为管理脚本使用基本HTTP Authentication。但是,由于它非常简单,它不能保护您免受暴力破解或密码泄露等。
无论如何,如果您更喜欢安全性,则需要在PHP中进行自己的身份验证,例如,您可以使用this package。它很简单,具有许多安全功能