1.4猪骑士作业提交 - 已锁定

猪骑士   ·   发表于 2018-09-01 11:47:44   ·   CTF&WP专版

<?php 

/**

* 当前为登录页面,---附件包括php登录与验证页面,成功后的跳转页面,users数据库表

* 链接数据库的用户名和密码需要自己填写设置

* 功能描述:有2个或多个字段的用户登录表单,点击按钮后提交到后端PHP,判断是否登陆成功。

* Tips:尝试使用HTML编写一个Form表单,使用POST或GET方式提交。后端PHP接受提交的内容,然后去数据库查询。

* Tips:尝试修复SQL注入漏洞。

*/

function post_back(){

//提示信息

global $tips;

//校验参数完整性

if(empty($_POST['username'])){

$tips = "请输入用户id";

return;

}

//此时将类型转换为int,防止sql字符串拼接注入

$username = (integer)$_POST['username'];

if(empty($_POST['password'])){

$tips = '请输入密码';

return;

}

$password = $_POST['password'];

//数据都合法,进入数据库查询判断,本题使用mysql,

//数据库名people,

//有表users,

//表中字段有id: int;  username: int;  password: varchar(16)

$link = @mysqli_connect('localhost', 'you_name', 'you_password', 'people');

if(!$link){

$tips = "无法连接数据库";

@mysqli_close($link);

return;

}

$result_data = mysqli_query($link, "SELECT `username`, `password` FROM `users` where `username`=$username;");//$username = 1111 or 1=1

//查询无结果则没有该用户

if(mysqli_num_rows($result_data) == 0){

$tips = '没有该用户!!!';

@mysqli_free_result($result_data);

@mysqli_close($link);

return;

}

//有该用户,读取查询的结果集

while($data = mysqli_fetch_assoc($result_data)){

if ($data['password'] != $password) {

$tips = '密码不正确!!';

@mysqli_free_result($result_data);

@mysqli_close($link);

return;

} else {

//登录成功跳转页面

header('Location: ./logined.html');

}

}

}

//必须以post方式提交时,才进行表单验证

if($_SERVER['REQUEST_METHOD'] === 'POST'){

post_back();

}

?>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>登录页面</title>

<style>

td {

width: 100px;

height: 30px;

text-align: center;

}

</style>

</head>

<body>

<h1>登录页面</h1>

<!-- 登陆表单,提交给本页面,post方式 -->

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<table border="1">

<tbody>

<tr>

<td>用户id</td>

<td><input type="text" name="username"></td>

</tr>

<tr>

<td>密码</td>

<td><input type="password" name="password"></td>

</tr>

<tr>

<td></td>

<td><input type="submit" value="登录"></td>

</tr>

</tbody>

</table>

</form>

<!-- 提示信息 -->

<?php if (isset($tips)): ?>

<p><?php echo $tips ?></p>

<?php endif ?>

</body>

</html>




<!DOCTYPE html>

<!-- 登陆成功后的页面 -->

<html>

<head>

<meta charset="UTF-8">

<title>欢迎</title>

</head>

<body>

<h1>登陆成功,欢迎您!!</h1>

</body>

</html>


打赏我,让我更有动力~

附件列表

1.4猪骑士作业提交.rar   文件大小:0.004M (下载次数:2)

1 条回复   |  直到 2018-9-3 | 1589 次浏览

Track-方丈
发表于 2018-9-3

通过,金币奖励已发放。

代码很规范,思路清晰。

      ——周末未上班,让您久等了。


评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.