JavaScript、ASP、PHP、Ruby等脚本语言。javascript
service apache2 start
开启Apache,使用netstat -aptn
查看确认端口占用127.0.0.1:8080
,登陆到Apache首页验证其可用cd /var/www/html
,新建一个test1.html文件,而且编写一个含有表单的htmllocalhost/test1.html
,设计表单时有设计两个输入框的初始值/etc/init.d/mysql start
打开mysql服务mysql -u root -p
以root身份登陆,输入默认密码为password,进入Mysqluse mysql;
选择mysql数据库select user, password, host from user;
显示mysql库中已有的用户名、密码与权限UPDATE user SET password=PASSWORD("新密码") WHERE user='root';
更改用户名root的密码flush privileges;
更新权限mysql -u root -p
从新进入,使用新密码登陆成功,说明修改为功CREATE SCHEMA
4308zss;
建立库表输入如下php
use 4308zss
打开表,insert into users(userid,username,password,enabled) values(1,'20154308',password("20154308"),"TRUE");
进行内容的添加
html
sudo apt-get install php
<form method ="post" action="test.php" name="frmLogin" >
,test.php是后面要用到的php文件,也就是链接到这里;php里的代码是$query_str="SELECT * FROM users where username='{$uname}' and password=password('{$pwd}');";
users是以前mysql基础里新建的用户,在这个用户里有我新建的记录,用来匹配在网页上输入的用户密码是否正确。差很少就是这些,能够作实验了。html:前端
<html> <head> <title>test</title> </head> <body> <table> <form method ="post" action="test.php" name="frmLogin" > <tr> <td>user</td> <td><input type="text" name="username" value="Your name" size="20" onfocus="if (this.value=='Your name') this.value='';" /></td> <td> </td> <td> </td> </tr> <tr> <td>password</td> <td><input type="password" name="password" value="Your password" size="20" maxlength="20" onfocus="if (this.value=='Your password') this.value='';" /></td> <td> </td> <td> </td> </tr> <tr> <td><input type="checkbox" name="zlogin" value="1">auto login</td>
php:java
<?php $uname=($_POST["username"]); $pwd=($_POST["password"]); /* echo $uname; */ $query_str="SELECT * FROM users where username='{$uname}' and password=password('{$pwd}');"; /* echo "<br> {$query_str} <br>";*/ $mysqli = new mysqli("127.0.0.1", "zss", "20154308", "4308zss"); /* check connection */ if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } echo "connection ok!"; /* Select queries return a resultset */
结果是这样,链接到php文件了可是后面就压根没有去链接个人数据库。检查php文件
以前说的应该填users的地方我一开始填了4308zss,这是我新建的库的名字啊,应该填用户名啊,改掉!再次登陆是下面这样。
链接到数据库,可是匹配不了记录。多是users这个用户的权限不够,因而赋予它全部权限grant select,insert,update,delete on 4308zss.* to users@localhost identified by "20154308";
可是结果好像如出一辙,不能够!而后发现了我和某一个试验成功的同窗的代码不同的地方mysql
细微的差异,多是语法错误吧,最后改掉以后就ok了web
下图是匹配正确的结果sql
在登陆界面用户名处输入' or 1=1#,密码随意,发现能够成功登陆
数据库
成功登录的缘由:
select * from users where username='' or 1=1#' and password=''
,#是注释符,将其后面的内容给注释掉了,只剩下前面的1=1,固然是恒成立apache
<img src="0.jpg" />haha</a>
,密码随意可是同样的结果,也不能够……最后就是没看见图片