Exp8 Web基础
1. 实验要求
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
理解JavaScript的基本功能,理解DOM。编写JavaScript验证用户名、密码的规则。
2. 实验原理
1.1 前端
- 内容:网页的文本。
- 属性:文本对应的格式。
- CSS:显示文本的“外形”。
- JavaScript:脚本,操控当前网页的内容。
- 表单:特殊功能的标签,如窗口、按钮等。
1.2 后台
- PHP:可执行文件,可以动态生成html文件。
- Apache:由Apache负责将后台的文件原原本本的通过http协议传送至浏览器。
3. 实验过程
3.1 前端
- 首先打开Apache服务,输入/etc/init.d/apache2 start指令打开。并输入netstat -aptn查看占用情况。
- 打开浏览器,在网址中输入localhost:8080,打开测试网页,效果如下。
- 在/var/www/html目录下新建一个html文档,命名为5113.html。在编辑器中输入:
3.2 JavaScript
- 仍然在/var/www/html目录下新建5113_2.html的文件。输入以下代码:
{
function check(Form){
var Username=Form.user.value;
var pwd=Form.pw.value;
if((Username == "")||(pwd == ""))
{
alert("you have to fill in the username and password")
return false;
}
if(pwd.length > 16 || pwd.length < 6)
{
alert("the length of password should between 6 and 16 byte!");
return false;
}
For.submit();
}
}
3.3 MySQL基础
- 首先开启MySQL服务,输入/etc/init.d/mysql start。
- 开启正常,使用默认密码登录root用户。然后我发现...emmmlinux中的sql和win下的不太一样,直接输入mysql+用户名+密码是错误的。还是mysql -u +用户名 -p吧。
输入下面的指令修改密码
update user set password=PASSWORD("新密码") where user=‘root‘;
flush privileges;
- create database 数据库名称;——创建新的数据库。
- show databases; ——显示所有数据库。
- create table 表名 (字段设定列表);——创建新的表。
- insert into 表名 values(‘值1‘,‘值2‘,‘值3‘...);——向表中插入新的数据。
- select * from 表名;——查询表中的数据条目。
3.4 PHP基础
- 在浏览器中打开会有两种不同的结果,一种在文件中打开是这样的;另一种在浏览器中输入localhost/test.php?a=/etc/passwd,则会将该文件夹下所有文件全部输出出来。
- 在/var/html/www/中新建一个PHP文件,作为连接数据库和前端的桥梁,代码如下:
- 再对原来的代码做一下修改,然后我发现之前的button打错了,怪不得看上去怪怪的==。
- PS,在机器重启或者挂起时可能会出现下面的代码提示:
Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘ (2 "No such file or
3.5 sql注入
‘ or 1=1#
- 原因在于select * from users where username=‘‘ or 1=1#‘ and password=‘‘是一个恒成立的判断条件————输入的第一个单引号与前面的单引号形成了闭合,使用户名直接为空。而多加出来的“or”使得判断条件成为了或的关系,只要有一个条件成立就会判断登陆成功。而1=1是一个恒等式
3.6 XSS攻击
- 解释如下,在Login.php中有一个echo uname。而uname是从前端接收的usename,当我们在用户名输入上面那句话的时候就会讲这句话原封不动的传给后台,然后在echo语句中被执行。显示当前文件夹中的图片。
4. 实验感想
4.1 问题回答
什么是表单
- 表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分: 表单标签、
表单域(包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等)、
表单按钮(包括提交按钮、复位按钮和一般按钮.表单按钮可以用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作)。
浏览器可以解析运行什么语言。
- 支持HTML(超文本标记语言)、XML(可扩展标记语言)以及Python、PHP、JavaScript、ASP等众多脚本语言
WebServer支持哪些动态语言
- JavaScript、ASP、PHP、Ruby等脚本语言。
get和post有什么区别?
- GET后退按钮/刷新无害,POST数据会被重新提交。
- GET书签可收藏,POST为书签不可收藏。GET能被缓存,POST不能缓存 。
- GET对数据长度有限制,当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。POST无限制。
- GET只允许 ASCII 字符。POST没有限制。也允许二进制数据。
- 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET !POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。GET的数据在 URL 中对所有人都是可见的。POST的数据不会显示在 URL 中。
4.2 实验体会
- 总的来说这次实验不是很困难,因为之前有学过网站编程的一些基础,但是因为不会java,所以很多东西其实还是似懂非懂。需要进一步加强学习。
Exp8 Web基础 20155113徐步桥
原文:https://www.cnblogs.com/xubuqiao/p/9074745.html