标签:链接 model 组织 md5 支持 实现 ref 文本 检验
(1)什么是表单.
(2)浏览器可以解析运行什么语言.
(3)WebServer支持哪些动态语言.
因为之前学过Java web这门课,所以针对这次的实验还是有些基础的。不过岁月不饶人啊,还是有很多东西忘记了。幸好老师给了菜鸟教程这个网站让我们参考学习,我还是收获蛮多的。这次实验的效果还可以,满足了老师提的所有要求。不过我觉得我的前端做得太简单了,课下应该多花时间再研究研究。菜鸟教程上有很多实例,用起来也很方便,左边是代码,右边就是呈现的效果。
现在来看,真是太后悔了,之前没有选过数据库这门课,感觉很吃亏。正是由于对这部分知识的不熟,导致我在实验过程中犯了许多不应该有的错误,也因此浪费了很多时间。不过还好实验成功了,在解决问题的这个过程中,我确实蛮有收获,感触颇深。
service apache2 start
开启Apache2服务netstat -aptn
查看端口占用情况,在这里apache2占用端口8080localhost:8080
/etc/apache2/ports.conf
下设置的Apache监听端口cd /var/www/html
,新建一个html文件
html_form_action.php
的页面,由于没有对此页面进行编写,所以出现的是404页面。
效果显示:
开启sql服务:/etc/init.d/mysql start
输入mysql -u root –p
,并根据提示输入密码,默认密码为p@ssw0rd
,进入MySQL
。
show databases;
,可以查看基本信息use mysql;
,选择mysql
数据库select user, password, host from user;
,mysql
库中的user
表中存储着用户名、密码与权限UPDATE user SET password=PASSWORD("新密码") WHERE user=‘root‘;
flush privileges;
,更新权限quit
退出localhost:8080/20145326test.php
,可以看见如下界面,测试成功vim login.html
,编写登录网页
vim login.php
,通过php实现对数据库的连接。在firefox浏览器中输入localhost:8080/login.html
,就可以访问自己的登陆页面啦。
在登录页面中输入数据库中存有的用户名和密码并点击登录,登陆成功。
构造SQL语句:在用户名输入框中输入‘ or 1=1#
,密码随便乱输,这时候的合成后的SQL查询语句为select * from users where username=‘‘ or 1=1#‘ and password=md5(‘‘)
因为1=1永远都是成立的,即where后的条件总是为真,所以能够成功登录。
输入‘;insert into users(userid,username,password,enabled) values(666,‘aaa‘,password("aaa"),"TRUE");#
但是页面跳转后,居然是空白页。
百度了一下才知道,是php代码中的判断语句的问题,它不允许多条执行,我们可以使用$result = $mysqli->multi_query($query_str)
实现多条SQL语句。
现在再试试看。
居然失败了,为什么啊???
为了检验语句是否执行成功,我直接进入数据库中查找,显然注入是没有问题的。
$result->num_rows>0
这行代码,在我把query
改为multi_query
的时候出现了问题。<img src="5326.jpg" /></a>
先进行简单的测试。
标签:链接 model 组织 md5 支持 实现 ref 文本 检验
原文地址:http://www.cnblogs.com/cxy1616/p/6817801.html