gpt4 book ai didi

php - MySQL 和 PHP 登录安全问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:16:03 25 4
gpt4 key购买 nike

我已经潜伏在这里几个月了,不得不说这个社区很棒!

所以,这是我的问题。我正在为网站创建登录功能。目前这只是一个非常基础的论坛,我的目标是学习每一部分并从中发展它们,而不是直接潜入深层次。

我的代码如下:

<?php
$username = "temp_name";
$password = "temp_pass";
$hostname = "temp_host";
$db_name = "temp_dbase";
$tbl_name = "temp_tbl";

$login_uname = $_POST['username'];
$login_upass = $_POST['password'];
$salt1 = "temp_salt1";
$salt2 = "temp_salt2";

mysql_connect("$hostname", "$username", "$password")or die("Unable to connect to server);
mysql_select_db("$db_name")or die("Cannot access database.");

$user = mysql_query("SELECT username, password FROM $tbl_name WHERE username = '$login_uname');
$userexist = mysql_num_rows($user);

if($userexists == 0) {
die("Invalid login information.");
}

$userinfo = mysql_fetch_array($user);

$checkpass = md5($login_upass);
$checkpass = $salt1 . $checkpass . $salt2;

if(($userinfo['username'] == $login_uname) && ($userinfo['password'] == $checkpass)) {
setcookie('username', "$login_uname", time()+60*60*24*7);
setcookie('password', "$login_upass", time()+60*60*24*7);
}
else
die("Invalid login information.");

?>

现在,代码可以正常工作,没有问题。我了解哈希和加盐密码的基础知识(我知道 md5 并不理想,但目前它只是一种学习工具。)我真正关心的是:

我的代码中有我的 MySQL 登录信息!我考虑过让用户注册一个用户名和密码,然后让 MySQL 为他们自己生成一个登录用户名和密码,以便他们授予适当的权限,但我觉得这完全不切实际,而且随着站点的扩展,它本身也会存在安全风险。

将代码隐藏在另一个文件中并仅使用 an 可能有效,但使用此方法是否会阻止用户浏览我的代码本身并仅查看基本的 MySQL 登录信息?

我知道 PHP 代码不会显示在网站的源代码中,除非它没有被正确解析。但是有什么我应该注意的问题或解决方案吗?

再次感谢您的帮助!我知道这是一面文字墙。

最佳答案

将配置信息外部化为类似config.php 的内容,然后在文件顶部使用require_once('config.php');

CHMOD(更改模式)将 config.php 文件更改为 0644,以便它只能由拥有用户(服务器)执行或读取。

有了这个,没有人能够看到你的 MySQL 连接信息,除非他们有 FTP 或 SSH 访问你的盒子(在这一点上,你有更大的问题)

关于php - MySQL 和 PHP 登录安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com