首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP CMS登录黑客攻击

PHP CMS登录黑客攻击
EN

Stack Overflow用户
提问于 2012-02-18 02:34:51
回答 5查看 5.4K关注 0票数 2

最近有人黑了我的PHP CMS,植入了一个SQL注入。有没有办法让我的登录码更受保护,防止黑客入侵?任何帮助都是最好的,谢谢。

登录表单

代码语言:javascript
复制
<div id="loginform">

  <form method="post" action="check-login.php" name="form1">

    <label for="username" /><span style="color:#FFFFFF; font-family:'Trebuchet MS', Arial, Helvetica, sans-serif;">username:</span></label>

    <input type="text" name="myusername" id="username"/>

    <label for="password"/><span style="color:#FFFFFF; font-family:'Trebuchet MS', Arial, Helvetica, sans-serif;">password:</span></label>

    <input type="password" name="mypassword" id="password"/>

    <label for="submit"></label>

    <input type="submit" name="sumbit" value="Login">

  </form>

</div>

PHP

代码语言:javascript
复制
mysql_connect ($host, $username, $password) or die ("can't connect");
mysql_select_db ($db_name) or die (mysql_error());

$myusername = $_POST['myusername'];
$mypassword = $_POST['mypassword'];

$sql = "SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result = mysql_query($sql);

$count = mysql_num_rows($result);
if ($count == 1){
 session_register("myusername");
 session_register("mypassword");
 header("Location:cms/admin.php");
}else{
 echo "Wrong username or password";
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-18 02:40:27

哇。这是一个的禁忌:

代码语言:javascript
复制
$myusername = $_POST['myusername'];
$mypassword = $_POST['mypassword'];

您至少需要使用mysql_real_escape_string清理这些输入。

将其更改为:

代码语言:javascript
复制
$myusername = mysql_real_escape_string($_POST['myusername']);
$mypassword = mysql_real_escape_string($_POST['mypassword']);

htmlentities()htmlspecialchars()也很有用,但我建议不要对进入数据库的数据使用它们。

票数 6
EN

Stack Overflow用户

发布于 2012-02-18 02:40:41

代码的问题在于您直接将登录框中的用户输入放入SQL查询中。这确实是一个安全漏洞,并允许SQL注入。

您可以使用mysql_real_escape_string()函数来解决这个问题-只需将登录表单中的变量传递给它,然后再将其放入SQL查询。

然而,我更喜欢的解决方案是使用PDO或MySQLi准备好的语句-我强烈建议您学习和使用这种方法。

票数 2
EN

Stack Overflow用户

发布于 2012-02-18 02:39:30

代码语言:javascript
复制
$myusername = $_POST['myusername'];
$mypassword = $_POST['mypassword'];

应该受到保护

代码语言:javascript
复制
$myusername = mysql_real_escape_string ($_POST['myusername']);
$mypassword = mysql_real_escape_string ($_POST['mypassword']);

mysql_real_escape_string()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9333545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档