我现在正在学习PHP(只是为了好玩)。
我认为在源代码中使用明文密码存在很大的危险。但究竟是什么风险?
例如,
<?php
if ($pass == "4f5s5gdx#") {
/* do secure code */
} else {
/* error */
}
?>
假设$pass
来自文本字段。
我知道htmlspecialchars()
,以防止代码注入攻击。但是明文密码检查有哪些其他安全问题?我知道你应该使用哈希和盐作为实际密码(我绝不会将其用于严格的安全性)。
答案 0 :(得分:2)
如果您不小心输入了<
或>
来阻止PHP解析您的PHP代码,或者您的PHP因任何原因而停止被解析,那么您将提供一个纯文本/ HTML文件您的用户在银盘上使用纯文本密码。
答案 1 :(得分:2)
这个答案应该告诉你如何以纯文本形式访问php文件(不是由php解析器处理)
https://stackoverflow.com/a/2995394/3501422
如果某人利用您服务器上的漏洞并抓住该页面,则他们会拥有所有密码。
它拥有良好的安全性来对密码进行散列或加密,并结合其他安全方法来构建一个出色的系统。安全性完全取决于层,您需要尽可能多地添加,密码散列就是其中之一。
答案 2 :(得分:0)
所有的PHP代码都应该由服务器远程处理,因此用户只能看到服务器显示的内容......但是,如果您有类似
的内容<?php
// Code here
?>
$password = 'iloveSO';
或
<?php
$password = 'iloveSO';
echo $password;
?>
然后您的密码可供浏览器查看。
确保您不会犯错误的简单方法是将您的密码与php文件分开。
password.php
<?php
// Password PHP File //
$mail_password = 'adsfasdf';
$mail_username = 'adsfasdf';
$mysql_password = 'asdfadsf';
$mysql_username = 'root';
?>
的index.php
<?php
require_once 'password.php';
?>
更好的是,如果你的密码.php文件在你的htdoc文件夹之外,那么用户永远无法访问它。
- password.php
- htdocs/
- index.php
- images/
- image1.jpg
在上面的文件夹示例中,您将在索引文件中执行以下操作。
require_once '../password.php';