EXP8 Web基础
基础问题回答
1.什么是表单?
表单:表单在网页中主要负责数据采集功能。
基本组成部分:
- 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。
- 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。
2.浏览器可以解析运行什么语言
超文本标记语言:HTML
可扩展标记语言:XML
脚本语言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等。
3.WebServer支持哪些动态语言
常用的有:ASP语言,PHP语言和JSP语言。
实践内容
- Web前端:HTML基础
- Web前端:javascipt基础
- Web后端:MySQL基础
- Web后端:PHP基础
- SQL注入
- XSS攻击测试
- 发帖和会话管理的实现
实践过程记录
1.Web前端HTML
1.输入sudo vi/etc/apache2/ports.conf查看apache端口情况,更改端口号。我改为8080
2.通过service apache2 start开启Apache,使用netstat -aptn查看确认端口占用
3.浏览器中输入localhost:8080,登录到Apache首页验证其可用
4.访问Apache工作目录cd /var/www/html,新建一个test.html文件
5.编写一个含有表单的html
6.登录浏览器,输入localhost:8080/test.html,成功出现下图界面
7.在上面的文本框内随意输入,然后点击确认按钮数据会传送到html_form_action.php的页面,由于没有对此页面进行编辑,出现的是404(也就是失败,什么都没有!)
2.Web前端javascipt
- JavaScript是一种属于网络的脚本语言,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
- DOM:文档对象模型,可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或XML文档的常用方法。
1.编写验证用户名和密码的规则:(比如用户名和密码不能为空)
2.登入浏览器,输入localhost/test1.html进行测试。
3.MySQL基础
注:在MySQL中输入命令后面都要带一个分号作为命令结束符
1.输入/etc/init.d/mysql start打开mysql服务
2.输入mysql -u root -p,以root身份登录,根据提示输入密码,默认密码为p@ssw0rd,进入MySQL
3.修改密码
- 输入use mysql;,选择mysql数据库
- 输入select user, password, host from user;,显示mysql库中已有的用户名、密码与权限
- 输入UPDATE user SET password=PASSWORD("新密码") WHERE user='root';更改用户名root的密码
- 输入flush privileges;,更新权限
(由于各种不仔细,后来我的密码改为4329)
输入quit退出,重新输入mysql -u root -p重新进入,使用新密码登录成功,说明修改成功
4.创建新表
输入CREATE SCHEMA库表的名称;
5.在表中添加内容
输入use gaojiatong打开表
输入insert into users(userid,username,password,enabled) values(1,'20154329',password("4329"),"TRUE");进行内容的添加
4.PHP基础
PHP(Hypertext Preprocessor)是一种通用开源脚本语言。主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率高,PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快
1.测试一下php。还是在原位置新建一个php文件
*以下是一个php测试代码:
2.浏览器打开localhost/test.php
5.PHP+MySQL实现登录网页编写
扑街了无数次,总结一下经验教训!事情是这样的——
- MySQL中用户名不能是root,要新建一个用户,不然会失败
(下图为我新添加的用户)
- php文件一定要仔细修改,该改的都对应修改好,任何遗漏都会导致failed
(这是我的test2.html,粉色框内是需要认真修改的部分!!!)
综上所述,其实并不难,一定要仔细仔细再仔细
6.SQL注入攻击
SQL注入攻击:可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
1.在登录界面用户名处输入' or 1=1#,密码随意,发现可以成功登录
- 这是个什么操作呢?
在代码中有这个语句select * from users where username='' or 1=1#' and password='' #是注释符,将其后面的内容给注释掉了,只剩下前面恒成立的1=1,所以“密码随意”可以成功登录。
2.将login.php文件中if($result = $mysqli->query($query_str))改为if ($result = $mysqli->multi_query($query_str))实现执行多个sql语句
3.在用户名输入框中输入';insert into gjt values('wxf','4318');#SELECT * FROM gjt WHERE username='' insert into gjt values('wxf','4329'); 提示登录失败。
但是到数据库里查看表的内容就发现多了一条用户信息,下次就可直接用这条用户信息登录。
7.xss攻击
- XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中
1.先将图片保存在/var/www/html下 (Leon.jpg)
2.在登录的用户名中输入:haha,密码随意
这里图片名一定要和你命名的一模一样!
3.点击登录,失败
为什么会失败呢?原因是......!↓
4.打开login.php,取消掉这行注释,现在就可以成功啦
(终于结束了,撒花★,°:.☆( ̄▽ ̄)/$:.°★ 。)
意外收获
在百度学习html时,我get了一项小小的修改背景颜色/图片的技能,链接如下↓
link
这是我修改的猥琐少女粉↓(Φ皿Φ)
html其实很好玩欸,正在了解更多小操作......
实验心得与体会
一开始觉得工程很浩大,做完之后发现,考验的还是耐心与细心。步骤出现问题,都可以通过各种各样的方法解决,但是在这之外的,譬如说html中有些地方因为不自信没有修改导致的......就很不应该了。第一次接触html,出现过(虽然我写的代码很美,但它显示出来和我想的完全不一样,最后还是靠百度)。但是!还是很有收获的!