2018-2019 20165226 Exp 8 Web基础
目录
一、实验内容说明及基础问题回答
1、实验内容
(1).Web前端HTML(0.5分)
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
(2).Web前端javascipt(0.5分)
理解JavaScript的基本功能,理解DOM。编写JavaScript验证用户名、密码的规则。
(3).Web后端:MysqL基础:正常安装、启动MysqL,建库、创建用户、修改密码、建表(0.5分)
(4).Web后端:编写PHP网页,连接数据库,进行用户认证(1分)
(5).最简单的sql注入,XSS攻击测试(1分)
功能描述:用户能登陆,登陆用户名密码保存在数据库中,登陆成功显示欢迎页面。
2、基础问题回答
(1)什么是表单
(2)浏览器可以解析运行什么语言
(3)WebServer支持哪些动态语言
最常用的三种动态网页语言有ASP(ActiveServerPages),JSP(JavaServerPages),PHP(HypertextPreprocessor)
- ASP全名ActiveServerPages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的WEB服务应用程序。ASP采用脚本语言VBScript(Javascript)作为自己的开发语言。
- JSP是Sun公司推出的新一代网站开发语言,Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和JavaApplet之外,又有新的硕果,就是JSP,JavaServerPage。JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。
- PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法,并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。
二、实验过程
1.Web前端:HTML
- 安装、启动Apache
- 编写一个HTML作为前端的登录页面
-
get 与 post
①get是从服务器上获取数据,post是向服务器传送数据
②get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
③对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
④get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
⑤get安全性非常低,post安全性较高。但是执行效率却比Post方法好。 编写一个含有表单的HTML
网页效果如图
-
- 编写一个PHP作为登录成功的返回页面
2.Web前端javascipt
JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
文档对象模型(Document Object Model,简称DOM,是W3C组织推荐的处理可扩展标志语言的标准编程接口。
在网上借鉴了一个编写验证用户名和密码的规则:用户名密码不能为空,密码长度在5-10之间
- 其中新增代码如下
<Meta charset="utf-8"/> <script language="javascript"> function check(Form){ var Username =Form.user.value; var pwd =Form.pw.value; if((Username == "")||(pwd == ""))//如果用户名为空 { alert("用户名或密码不能为空"); return false; } if (pwd.length > 10 || pwd.length < 5) { alert("密码长度应该在 5 - 10 位"); return false; } Form.submit(); } </script>
修改后
测试结果
3.Web后端:MysqL基础
- 安装
apt-get install MysqL
- 报错
- 说明之前已经更新安装好
- 报错
启动
/etc/init.d/MysqL start
,成功- 登陆
MysqL -u root -p 默认密码[email protected]
查看基本信息
show databases;
- 更改用户密码、权限并重新登录
- 创建数据库、表并插入数据
- 输入
show databases;
查看存在的数据库;输入use lxs
使用刚创建的数据库lxs。 -
输入
create table user (username VARCHAR(20),password VARCHAR(20));
创建一个名为user的数据表,表中包含VARCHAR类型的两个字段:username
和password
这里使用的是varchar类型而非char类型,他们的差别如下:
char
类型指定大小后会预分配固定大小,不管是否使用空间都被占用varchar
类型用多少占多少,只是不能超过括号中指定的上限 - 输入
show tables;
查看所有的表,可以发现刚刚新建的user 输入
insert into user values(‘20165226‘,‘20165226‘);
向表中username`` password
两个字段插入数据,即用户名为20165226
,密码为20165226
- 为当前主机登录的用户lxs授权
4.Web后端:编写PHP网页
<?PHP $uname=$_POST["user"]; $pwd=$_POST["pw"]; echo $uname; $query_str="SELECT * FROM user where username='$uname' and password='$pwd';"; $MysqLi = new MysqLi("127.0.0.1","lxs","20165226","lxs"); /* 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_str)) { if ($result->num_rows > 0 ){ echo "<br> Welcome~ <br> "; } else { echo "<br> login Failed! <br> " ; } /* free result set */ $result->close(); } $MysqLi->close(); ?>
5.最简单的sql注入,XSS攻击测试
- sql攻击
- XSS攻击测试
三、总结与体会
本次实验融合了之前的web编程、数据库等知识,学习了如何在kali连接创建并调用数据库,实现了一个最基础的网页登录功能,挺有意思的。
返回目录
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。