20155327 EXP8 Web基礎

20155320 EXP8 Web基礎

基礎問題回答

  • 什麼是表單?
    表單:能夠收集用戶的信息和反饋意見,是網站管理者與瀏覽者之間溝通的橋樑。
    表單由文本域、複選框、單選框、菜單、文件地址域、按鈕等表單對象組成,全部的部分都包含在一個由標識符標誌起來的表單結構中。
    表單的種類有註冊表、留言薄、站點導航條、搜索引擎等。javascript

  • 瀏覽器能夠解析運行什麼語言?
    HTML,XML,Python,PHP,JavaScript,ASP等腳本語言。php

  • WebServer支持哪些動態語言
    JavaScript、ASP、PHP、Ruby等腳本語言。html

實驗步驟

Web前端:HTML

使用netstat -tupln |grep 80查看有沒有進程佔用80端口
發現有以後就用kill+進程號殺死進程
前端

使用指令apachectl start打開Apache服務java

在瀏覽器中輸入http://127.0.0.1:80進行查看,如圖所示,打開了上次實驗克隆的網頁,說明Apache2正常工做
mysql

cd var/www/html進入到Apache的工做目錄下,vi simple_form.html新建一個含有表單的html,這是一個簡單的登陸頁面:
web

在firefox中輸入:http://127.0.0.1:80/test1.html就能打開該網頁。結果如圖:sql

因爲咱們尚未編跳轉後的頁面,因此在action屬性裏面填的是#,即返回當前頁面,因此點擊以後結果仍是在這個頁面。數據庫

javascript

概念:JavaScript是一種普遍用於客戶端Web開發的腳本語言,經常使用來給HTML網頁添加動態功能,好比響應用戶的各類操做。
DOM是文檔對象模型,DOM能夠以一種獨立於平臺和語言的方式訪問和修改一個文檔的內容和結構,換句話說,這是表示和處理一個HTML或XML文檔的經常使用方法。舉個例子,要改變頁面的某個東西,JavaScript就須要得到對HTML文檔中全部元素進行訪問的入口。這個入口,連同對HTML元素進行添加、移動、改變或移除的方法和屬性,都是經過DOM來得到的。apache

使用JavaScript編寫一個驗證用戶名、密碼是否爲空的判斷,爲空的話會跳出彈窗提醒。直接在以前的代碼上進行修改,添加的代碼以下所示:

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

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

    }
</script>

效果以下圖所示

PHP測試

php概念:PHP是一種通用開源腳本語言,語法吸取了C語言、Java和Perl的特色,主要適用於Web開發領域。它能夠比CGI或者Perl更快速地執行動態網頁。用PHP作出的動態頁面與其餘的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比徹底生成HTML標記的CGI要高許多;PHP還能夠執行編譯後代碼,編譯能夠達到加密和優化代碼運行,使代碼運行更快。
輸入vim /var/www/html/test.php新建一個PHP測試文件,代碼以下:

<?php
echo ($_GET["A"]);

include($_GET["A"]);

echo "welcome 20155320luojiaqi !<br>";
?>

用瀏覽器打開http://127.0.0.1:80/test.php,能夠看見以下界面,測試成功

MySQL基礎

開啓sql服務/etc/init.d/mysql start

輸入mysql -u root –p,並根據提示輸入密碼,默認密碼爲p@ssw0rd進入MySQL

輸入show databases;

對密碼進行修改:輸入use mysql;選擇mysql數據庫

輸入update user set password=PASSWORD("新密碼") where user='root';

輸入flush privileges;更新權限

接着輸入quit
退出MySQ

輸入mysql -u root -p
使用新密碼登陸成功,說明修改爲功:

先使用create database 庫名;創建一個數據庫;使用show databases;查看存在的數據庫;使用use 庫名;使用咱們建立的數據庫

使用create table 表名 (字段設定列表);創建數據表,數據表是數據庫中一個很是重要的對象,一個數據庫中可能包含若干個數據表;使用show tables;查看存在的數據表:

向表中添加用戶
use 剛剛創建的庫

insert into ljqtable values('123@163.com','20155327');
輸入select * from 表名;查詢表中的數據:

在MySQL中增長新用戶,使用grant select,insert,update,delete on 數據庫.* to 用戶名@登陸主機(能夠是localhost,也能夠是遠程登陸方式的IP) identified by "密碼";指令,這句話的意思是將對某數據庫的全部表的select,insert,update,delete權限授予某ip登陸的某用戶。如圖所示,增長新用戶以後,退出,從新使用新用戶名和密碼進行登陸,登陸成功說明增長新用戶成功:

php+mysql實現登陸網頁編寫

進入以前的登陸頁面設置編寫的文件夾cd /var/www/html。
輸入vim test.php,打開以前的php文檔,要創建與數據庫之間的鏈接,注意以框出來的地方下要按我的實際改變
PS:經過php實現對數據庫的鏈接:127.0.0.1是本機地址,libaiqian是MySQL的用戶名,20155327是我以前設置的登陸密碼,lbq是數據庫的庫名。

將以前編的登陸網頁的test1.html代碼中form的action屬性由#改爲test.php,即登陸後跳轉到test.php,再在火狐瀏覽器中輸入localhost:80/test.html訪問本身的登陸頁面

XSS攻擊

概念:

XSS表示Cross Site Scripting(跨站腳本攻擊),經過插入惡意腳本,實現對用戶遊覽器的控制。

具體來講假如用戶提交的數據含有js代碼,不作任何處理就保存到了數據庫,讀出來的時候這段js代碼就變成了可執行的代碼。通常用戶提交的數據永遠被認爲是不安全的,在保存以前要作對應的處理。

xss攻擊也能夠分紅三類:

反射型:通過後端,不通過數據庫
存儲型:通過後端,通過數據庫
DOM:不通過後端,DOM—based XSS漏洞是基於文檔對象模型Document Objeet Model,DOM)的一種漏洞,dom - xss是經過url傳入參數去控制觸發的。

用戶名輸入框中輸入111
讀取/var/www/html目錄下的圖片:

SQL注入

SQL注入漏洞是指在Web應用對後臺數據庫查詢語句處理存在的安全漏洞。也就是,在輸入字符串中嵌入SQL指令,在設計程序中忽略對可能構成攻擊的特殊字符串的檢查。後臺數據庫將其認做正常SQL指令後正常執行,可能實現對後臺數據庫進行各類操做,甚至形成破壞後臺數據庫等嚴重後果。
SQL注入通常分爲普通注入和盲注。
普通注入:後臺數據庫會回顯有價值的提示信息,經過這些可能的報錯信息能夠更容易地進行注入,適合新手入門訓練。
盲注:後臺管理員在給出錯誤頁面時,沒有提供詳細錯誤信息。攻擊者須要運用腳本經過僅有的判斷信息(好比時間差)對錶中的每個字段進行探測,從而實現注入
在用戶名輸入框中輸入' or 1=1#,密碼隨便輸入,是能夠登錄成功的。

相關文章
相關標籤/搜索