(1).Web前端HTML(0.5分)javascript
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。php
(2).Web前端javascipt(0.5分)css
理解JavaScript的基本功能,理解DOM。编写JavaScript验证用户名、密码的规则。html
(3).Web后端:MySQL基础:正常安装、启动MySQL,建库、建立用户、修改密码、建表(0.5分)前端
(4).Web后端:编写PHP网页,链接数据库,进行用户认证(1分)java
(5).最简单的SQL注入,XSS攻击测试(1分)mysql
功能描述:用户能登录,登录用户名密码保存在数据库中,登录成功显示欢迎页面。web
(1)什么是表单sql
jsp php asp等数据库
service apache2 start
cd /var/www/html
,simple_form.html
<html> <head> <title>Login</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <h2 align="center">Login</h2> <center> <form action="login" method="post"> <input placeholder="E-mail" name="Name" class="user" type="email"> <br> </br> <input placeholder="Password" name="Password" class="pass" type="password"> <br> </br> <input type="submit" value="Login"> </form> </center> </body> </html>
<html> <head> <title>Login</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <h2 align="center">Login</h2> <center> <form action="login" method="post" name="form_login"> <input placeholder="E-mail" name="Name" class="user" type="email" onfocus="if (this.value=='Your email') this.value='';" /> <br> </br> <input placeholder="Password" name="Password" class="pass" type="password" onfocus="if (this.value=='Your password') this.value='';"/> <br> </br> <input type="submit" value="Login" onClick="return validateLogin()"/> </form> </center> <script language="javascript"> function validateLogin(){ var sUserName = document.form_login.Name.value ; var sPassword = document.form_login.Password.value ; if ((sUserName =="") || (sUserName=="Your email")){ alert("User Email!"); return false ; } if ((sPassword =="") || (sPassword=="Your password")){ alert("Password!"); return false ; } } </script> </body> </html>
/etc/init.d/mysql start
mysql -u root -p
show databases;
use mysql;
select user, password, host from user;
update user set password=PASSWORD("新密码") where user='root';
flush privileges;
create database csj;
创建数据库:show databases;
use csj
create table login (username VARCHAR(20),password VARCHAR(20));
show tables;
insert into login values('20165302@qq.com','20165302');
插入数据select * from login
;查询表中的数据grant select,insert,update,delete on csj.* to csj@localhost identified by "20165302";
输入exit,从新登陆
/var/www/html
目录下新建一个PHP测试文件phptest.php
浏览器输入localhost:80/phptest.php
localhost:80/phptest.php?a=/etc/passwd
<?php $uname=$_POST["Name"]; $pwd=$_POST["Password"]; echo $uname; $query_str="SELECT * FROM login where username='$uname' and userpassword='$pwd';"; $mysqli = new mysqli("127.0.0.1", "csj", "20165302", "csj"); $query_str1="use csj;"; /* check connection */ if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } echo "connection ok!"; /* Select queries return a resultset */ if ($result = $mysqli->query($query_str1)) echo"<br>Success into database!"; echo $uname; if ($result = $mysqli->query($query_str)) { if ($result->num_rows > 0 ){ echo "<br> {$uname}:Welcome!!! <br> "; } else { echo "<br> login failed!!!! <br> " ; } /* free result set */ $result->close(); } $mysqli->close(); ?>
<?php $uname=$_POST["Email"]; $pwd=$_POST["Password"]; echo $uname; $query_str="SELECT * FROM login where username='$uname' and password='$pwd';"; $mysqli = new mysqli("127.0.0.1", "csj", "20165302", "csj"); $query_str1="use csj;"; /* check connection */ if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } echo "connection ok!"; /* Select queries return a resultset */ if ($result = $mysqli->query($query_str1)) echo"<br>Success into database!"; echo$uname; if ($result = $mysqli->query($query_str)) { if ($result->num_rows > 0 ){ echo "<br> {$uname}:Welcome!!! <br> "; } else { echo "<br> login failed!!!! <br> " ; } /* free result set */ $result->close(); } $mysqli->close(); ?>
输入用户名密码
所谓SQL注入,就是经过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来讲,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它能够经过在Web表单中输入(恶意)SQL语句获得一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。经过WEB表单递交查询字符的,这类表单特别容易受到SQL注入式攻击
在用户名的一栏里面输入' or 1=1#,而后输入一个随机的密码,怎么均可以登录上去:
把一张图片放入到/var/www/html下,在用户名输入框输入,密码随意,就能够读取图片了
((⊙o⊙)…好吧,图片加载不出来。。。。)
经过此次实验我学会了如何对数据库进行一些列的操做(数据库的建立,表的建立,添加表中的字段等),简单了解了php的格式和编写,学会了如何将前端,后台与数据库联系起来进行登录的操做,明白了最简单的SQL的注入和XSS攻击的原理