仅为一个用户创建PHP管理脚本

时间:2015-02-28 07:11:16

标签: php

我有一个网站,它是MySQL数据库的前端。此数据也通过Web服务公开(在Android应用程序中使用)。

目前我正在通过PHPMyAdmin维护数据,但这很麻烦而且不是那么好的#34;。

我想在我登录时创建一个/ admin模块(与PHP Varialbe或MySQL表中的值相对应),登录后我可以编辑,删除,添加数据。

问题:

  1. 在输入凭据与静态变量进行比较时,在安全性方面是否可以接受?只有一个用户,所以我觉得为成员创建表是一种开销。

  2. 关于沿着这条路走下去的任何指导原则?

3 个答案:

答案 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";

演示:http://3v4l.org/PknTI

答案 2 :(得分:0)

如果phpmyadmin安装在你的服务器localy,而不是安全地

您可以使用任何支持ssh连接的MySQL客户端。例如。适用于Mac的Sequel Pro或适用于WIN的HeidiSQL

此外,您可以为管理脚本使用基本HTTP Authentication。但是,由于它非常简单,它不能保护您免受暴力破解或密码泄露等。

无论如何,如果您更喜欢安全性,则需要在PHP中进行自己的身份验证,例如,您可以使用this package。它很简单,具有许多安全功能