当前位置:首页 > Web开发 > 正文

‘\‘‘) ){ die(scriptalert(‘账号密码有恶意符号

2024-03-31 Web开发

标签:

简单的表单登录代码,了解sql注入,,禁止单引号还有反斜杠\ # and or order关键字的提交

数据库:

技术图片

简单的源码:
<!DOCTYPE html>
<html>
<head>
<title>后台表单登录页面</title>
<meta charset=UTF-8>
</head>
<body>
<center>
<h3>后台登录</h3>
<form action="" method="POST">
帐号:?<input name=‘username‘ type=‘text‘><br />
暗码:?<input name=‘password‘ type=‘password‘><br />
<input type=‘submit‘ value=‘登录‘>
</form>
</center>
</body>
</html>

<!--前后端都在一个页面上-->

<?php

//判断有数据才执行后端代码,什么都不输入还是前端登陆界面,防备前端没有数据,后端验证老是弹出
if(!empty($_REQUEST)){
//数据不为空和空格,赋值账号和暗码,都转化为小写,两边去除空格,否则报错
$user = ! empty(trim($_REQUEST[‘username‘])) ? trim(strtolower($_REQUEST[‘username‘])) : die("<script>alert(‘账号不能为空!‘)</script>");
$passwd = ! empty(trim($_REQUEST[‘password‘])) ? trim(strtolower($_REQUEST[‘password‘])) : die("<script>alert(‘暗码不能为空!‘)</script>");

//禁止输入单引号
if(stristr($user,‘\‘‘) || stristr($passwd,‘\‘‘) ){
die("<script>alert(‘账号暗码有恶意标记,请从头输入‘)</script>");
}

//禁止添加可以sql注入的关键词
if(preg_match_all("/\/|#|and|or|order/",$user) || preg_match_all("/\/|#|and|or|order/",$passwd)){
die ("<script>alert(‘账号暗码有犯警字符,请从头输入‘)</script>");
}

$conn = mysqli_connect(‘127.0.0.1‘,‘root‘,‘root‘,‘db_form‘); //连接数据库
$sql = "select * from admin where username=‘$user‘ and password=‘$passwd‘"; //盘问语句,只要能找到该笔记录,说明匹对正确,判断为真,登陆告成

$result = mysqli_query($conn,$sql); //取出盘问功效,是个东西
$array = mysqli_fetch_array($result); //把功效东西变为数组取出数据
//var_dump($array);

//通过取数组里的键值,得到相应功效
//(能查到对应的用户名,功效为ture,显示登陆告成,取不到对应的功效,显示错误)
if($array[‘username‘]) {
echo ‘登陆告成!‘;
}
else{
echo ‘账号暗码错误!‘;
}
$conn->close();//封锁连接
}
?>

php登陆表单防注入操练

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32154.html