【发布时间】:2017-02-17 11:28:18
【问题描述】:
我想用密码保护我网站中的一些内容,我正在考虑使用这个 php 脚本
您认为这是一个好方法吗?
您是否知道更好的方法来完成这项任务或改进(如果需要)瘦的方法?
从数据库加载内容的代码是:
<?php
error_reporting(0);
include("config.php");
if (!isset($_REQUEST["p"])) {
echo 'document.write("<div id=\"protected_'.intval($_REQUEST["id"]).'\">");';
echo 'document.write("<form onsubmit=\'return LoadContent(\"'.intval($_REQUEST["id"]).'\",\"protected_'.intval($_REQUEST["id"]).'\",document.getElementById(\"pass_'.intval($_REQUEST["id"]).'\").value); return false;\'\"><input type=\'password\' size=\'30\' placeholder=\'Content is protected! Enter password.\' id=\"pass_'.intval($_REQUEST["id"]).'\"></form>");';
echo 'document.write("</div>");';
} else {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE `id`='".intval($_REQUEST["id"])."' AND password='".mysql_real_escape_string($_REQUEST["p"])."'";
$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
if (mysql_num_rows($sql_result)==1) {
$row = mysql_fetch_assoc($sql_result);
echo $row["content"];
} else {
echo 'Wrong password';
}
}
?>
【问题讨论】:
-
你想在 PHP 级别做吗?你可以很容易地用 htaccess 做到这一点(如果使用 apache)。 davidwalsh.name/password-protect-directory-using-htaccess 我不会在该站点上创建帐户以查看代码是什么,如果它使用
mysql_*功能,则不安全。如果将用户数据直接传递给查询,则不安全。不过,有很多方法可以拒绝访问。 -
所以您希望我们下载该软件包以查看其中的内容并运行它?我不会那样做;将您的代码粘贴到问题中。
-
嗨,代码存储在数据库中的 id、html 内容和密码,我看到的问题,我是 php 和数据库的新手,脚本将密码存储为纯文本在数据库中
-
怀疑它正在使用
mysql_*所以不,它不安全。如果使用 PHP 7,它甚至不会运行。 -
谢谢,您知道一些或多或少正确的类似脚本吗?