Exp8 Web基础 20154332

一、基础问题回答

  1. 什么是表单?
  • 表单是一个包含表单元素的区域,表单元素是允许用户在表单中(比如:文本域、下拉列表、单选框、复选框等等)输入信息的元素,表单在网页中主要负责数据采集功能。
  1. 浏览器可以解析运行什么语言?
  • 超文本标记语言、可扩展标记语言以及脚本语言。
    超文本标记语言:HTML
    可扩展标记语言:XML
    脚本语言:ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等
  1. WebServer支持哪些动态语言?
  • 常用的有:ASP语言,PHP语言和JSP语言。

二、实践过程记录

Web前端HTML
  • 使用指令 vi /etc/apache2/ports.conf 修改配置文件中的端口号改为学号4332。

  • 使用 netstat -aptn 查看一下端口占用,如果有占用,就使用kill 进程号。

  • 使用指令 service apache2 restart 打开Apache服务

  • 浏览器中输入localhost:4332,登录到Apache首页验证其可用

  • 访问Apache工作目录cd /var/www/html,新建一个20154332.html文件

  • 编辑一个 html 文件。

  • 登录浏览器,输入localhost:4332/20154332.html,成功出现下图界面

  • 在上面的文本框内随意输入,就会出现错误,因为我们只是就是创建一个空有架子的表格。

Web前端javascipt
  • 编写验证用户名和密码的规则:(比如用户名和密码不能为空)
    代码如下:
<html>  
<head>  
<title>test</title>   
</head> 
<body>           
<table>  
    <form method ="POST" action="#" name="frmLogin"  >  
    <tr>  
    <td>Username:</td>  
    <td><input type="text" name="username" value="Your name" size="20" maxlength="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">zidonglogin</td>  
    </tr>     
    <table>  
    <tr>  
        <td><input type="submit" name="login" value="Login" onClick="return validateLogin()"/></td>  
            <td><input type="reset" name="rs" value="Reset" /></td>  
        </tr>
    </table>    
    </form> 
</table>   
 
<script language="javascript">  
    function validateLogin(){  
        var sUserName = document.frmLogin.username.value ;  
        var sPassword = document.frmLogin.password.value ;    
        if ((sUserName =="") || (sUserName=="Your name")){  
            alert("Please enter the user name!");  
            return false ;  
        }  
       
        if ((sPassword =="") || (sPassword=="Your password")){  
            alert("Please enter the password!");  
            return false ;  
        }  
    
    }   
</script>  
</body>  
</html> 

2.登入浏览器,输入localhost:4332/154322.html进行测试。

当没有输入密码或没有密码时,出现如下界面:

当没有密码小于6位时,出现如下界面:

PHP基础
  • 测试一下php。还是在原位置新建一个php文件
    *以下是一个php测试代码:

2.浏览器打开localhost:8080/login.php

MySQL基础
  • 输入/etc/init.d/mysql start打开mysql服务

  • 输入mysql -u root -p,以root身份登录,根据提示输入密码,默认密码为p@ssw0rd,进入MySQL

  • ++在MySQL中输入命令后面都要带一个分号作为命令结束符++

  • 修改密码:
    输入select user, password, host from user;,显示mysql库中已有的用户名、密码与权限

  • 输入UPDATE user SET password=PASSWORD("新密码") WHERE user='root';更改用户名root的密码

  • 输入flush privileges;,更新权限。

  • 输入quit退出,重新输入mysql -u root -p重新进入,使用新密码登录成功,说明修改成功

  • 创建新表

  • 输入CREATE SCHEMA库表的名称;

  • 输入
CREATE TABLE `rqw`.`rq2` (
 `userid` INT NOT NULL COMMENT '',
 `username` VARCHAR(45) NULL COMMENT '',
 `password` VARCHAR(256) NULL COMMENT '',
 `enabled` VARCHAR(5) NULL COMMENT '',
 PRIMARY KEY (`userid`) COMMENT '');

  • 在表中添加内容

  • 输入use rqw打开表
    输入insert into rq2(userid,username,password,enabled) values(32,'rq',password("rq"),"TRUE");进行内容的添加

  • 查看一下:

PHP+MySQL实现登录网页编写

这一步是上两步的基础上建立的,上两步一定得好好认真的分析。在这一步我遇见了许多问题。

  • 首先我迷之自信的登录了一下。

  • ++原因++:是不能将用户名设成root,需要新建用户。然后将权限给新用户。

  • 在MySQL中新建用户
    使用

grant select,insert,update,delete on 数据库名.* to 用户名@localhost, identified by "密码";

  • 利用PHP和MySQL结合之前编的登录网页进行简单的用户身份认证,这里我参考的是老师给的代码编写login.php:
    需要注意:

  1. 表名
  2. 用户名
  3. 数据库密码
  4. 数据库名
  • 在/var/www/html工作目录下,新建一个pc.html将之前的编写好的前端的代码存入
  • 代码如下:
<html>  
<head>  
<title>test</title>   
</head> 
<body>           
<table>  
    <form method ="POST" action="login.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>  
    </tr>     
    <table>  
    <tr>  
        <td><input type="submit" name="login" value="login" onClick="return validateLogin()"/></td>  
        <td><input type="reset" name="rs" value="reset" /></td>  
        </tr>
    </table>    
    </form> 
</table>   

<script language="javascript">  
    function validateLogin(){  
        var sUserName = document.frmLogin.username.value ;  
        var sPassword = document.frmLogin.password.value ;    
        if ((sUserName =="") || (sUserName=="Your name")){  
        alert("user name");  
        return false ;  
        }  

        if ((sPassword =="") || (sPassword=="Your password")){  
        alert("password!");  
        return false ;  
        }  

    }   
</script>  
</body>  
</html>  
  • 接下来我又遇见了问题:

  • 原因可能是这里的密码是一堆乱码:
  • 解决方案:请教大神后,添加了一个登录名和相应的信息后:

  • 再次尝试,成功

SQL注入攻击
  • 在登录界面用户名处输入' or 1=1#,密码随意,发现可以成功登录

  • 将login.php文件中if($result = $mysqli->query($query_str))改为if ($result = $mysqli->multi_query($query_str))实现执行多个sql语句

3.在用户名输入框中输入insert rq2 value(4332,'rqww','4332',2);

提示登录失败。

xss攻击
  • 先将图片保存在/var/www/html下

  • 在登录的用户名中输入:haha,密码随意
    失败

  • 打开login.php,取消掉这行注释

  • 重新登录,图片出来啦!!

三、实验心得

  • 这次的实验深刻的体会到之前的步骤不做好就会很麻烦,相比与实验七这次的实验连接性很强,这次实验我反反复复做了很多遍,也对实验有了很深刻的印象。

posted on 2018-05-21 15:13  4332renqing  阅读(188)  评论(0编辑  收藏  举报

导航