GET | POST |
---|---|
可被緩存 | 不會被緩存 |
保留在瀏覽器歷史記錄中 | 不會保留在瀏覽器歷史記錄中 |
可被收藏爲書籤 | 不能被收藏爲書籤 |
對數據有長度限制 | 對數據沒有長度限制 |
返回目錄javascript
使用service apache2 start
命令可打開Apache服務。沒有任何報錯即爲開啓成功。
php
cd /var/www/html
進入Apache目錄下,新建一個含有表單的html文件test.html
這裏我參考了宏璐學姐的html,只要具備登陸界面就好啦。注意這個.html文件必定要放在Apache目錄下。html
<html> <head> <title>一個很普通的登陸界面</title> <!-- Meta tag Keywords --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- Meta tag Keywords --> </head> <body bgcolor="#FFFCEC" topmargin="100" leftmargin="325"> <!-- main --> <!--//header--> <h2><font size=6>Login</font></h2> <form action="phptest.php" method="post" name="form_login" > <input placeholder="your name" name="Name" class="user" type="text" onfocus="if (this.value=='Your name') this.value='';" /> <br> </br> <input placeholder="your password" name="Password" class="pass" type="password" onfocus="if (this.value=='Your password') this.value='';"/> <br> </br> <input type="submit" value="嚶嚶嚶不要點我" onClick="return validateLogin()"/> </form> <!--//main--> </body> </html>
返回目錄前端
<script language="javascript"> function validateLogin(){ var sUserName = document.form_login.Name.value ; var sPassword = document.form_login.Password.value ; if ((sUserName =="") || (sUserName=="Your name")){ alert("user name!"); return false ; } if ((sPassword =="") || (sPassword=="Your password")){ alert("password!"); return false ; } } </script>
再次進入網頁,直接點擊登陸鍵會提示輸入用戶名
java
若是沒有輸入密碼的狀況下點擊登陸鍵會提示未輸入密碼
mysql
返回目錄web
/etc/init.d/mysql start
輸入mysql -u root -p
使用root權限進入,默認密碼爲主機root用戶的密碼
sql
查看基本信息:show databases;
數據庫
use mysql;
(這裏的mysql是上一步中查詢到的數據庫名稱)select user, password, host from user;
(mysql庫中的user表中存儲着用戶名、密碼與權限)UPDATE user SET password=PASSWORD("新密碼") WHERE user='root';
flush privileges;
quit;
create database wyj(數據庫名稱);
use wyj;
create table 表名 (字段設定列表);
(並設置字段基本信息)
查看錶信息:show tables;
apache
insert into 表名 values('值1','值2','值3'...);
insert into user values('wyj','20165322');
查詢表中的數據:select * from 表名;
grant select,insert,update,delete on 數據庫.* to 用戶名@登陸主機(能夠是localhost,也能夠是遠程登陸方式的IP) identified by "密碼";
grant select,insert,update,delete on wyj.* to wyj@localhost identified by "12345678";
增長新用戶後,使用新的用戶名和密碼進行登陸:mysql -u wyj -p
登錄成功
phptest.php
<?php echo ($_GET["a"]); include($_GET["a"]); echo "This is my php test page!<br>"; ?>
在瀏覽器網址欄中輸入localhost:80/phptest.php?a=/etc/passwd
,可看到/etc/passwd文件的內容
<?php $uname=$_POST["Name"]; $pwd=$_POST["Password"]; echo $uname; $query_str="SELECT * FROM user where Name='$uname' and Password='$pwd';"; $mysqli = new mysqli("127.0.0.1", "wyj", "12345678", "wyj"); /* 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> {$uname}:Welcome login!! <br> "; } else { echo "<br> login failed!!!! <br> " ; } /* free result set */ $result->close(); } $mysqli->close(); ?>
關於$mysqli = new mysqli("127.0.0.1", "wyj", "12345678", "wyj");
//第一個wyj是新建的用戶名,12345678是新建用戶密碼,第二個wyj是數據庫的名稱
select * from users where username='' or 1=1#' and password=''
。解讀一下這個代碼,#至關於註釋符,即這個代碼至關於1=1時,就能跳轉登陸成功頁面。127.0.0.1/test.html
訪問本身的登陸界面' or 1=1#
,密碼任意輸入,可登陸成功127.0.0.1/test.html
訪問本身的登陸界面<img src="1.jpg" />
,密碼隨意輸入,就能夠讀取到圖片(1)什麼是表單
(2)瀏覽器能夠解析運行什麼語言。
(3)WebServer支持哪些動態語言
本次實驗我複習了之前學習過的html網頁代碼和JavaScript編程,同時瞭解到了利用SQL和XSS的攻擊手段,咱們在編寫後臺代碼的時候,必定要對數據進行一些處理而不是直接顯示,也要除去一些特殊語句對數據庫的攻擊,才能保證網頁的安全。