Skip to content

Latest commit

 

History

History

week12

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

作業

注意

這週的 hw1~hw2 是連續的作業,只要交一份就好,不用每一個都特地交一個。然後記得把你連線到資料庫的檔案(conn.php),加入.gitignore,否則這檔案會被放到 GitHub 上,大家就知道資料庫的帳號密碼了。

另外,請你在留言板的最上方加註一行警語:「本站為練習用網站,因教學用途刻意忽略資安的實作,註冊時請勿使用任何真實的帳號或密碼」,加警語的目的是因為這週要做的網站極度不安全,很有可能被駭客拿到整個資料庫的資料,因此請切記在這網頁上不要輸入任何敏感資訊。

hw1:修補漏洞

如同我在課程中提過的,上週做出來的網頁裡面,會有兩個網頁最知名的漏洞:

  1. SQL Injection
  2. XSS

現在請你試試看對你上週做出來的網頁做這兩種攻擊,看看是否能成功,並且修補這兩個漏洞。

hw2:加強留言板

這一週要再次增強留言板的功能:

  1. 身為使用者,可以在別人的留言底下新增留言,一樣可以輸入暱稱跟留言內容
  2. 身為系統,在顯示留言時應該一併列出底下所有的子留言
  3. 會員在自己的留言底下回覆的話,背景會顯示不同的顏色

簡單來說就是新增一個「子留言」的功能,只要有一層即可,不需要實作多層的子留言。然後也加一個小功能,如果原 po 自己回覆自己的留言,那篇子留言的背景要用不同顏色,這樣大家很容易辨別他是原 po。

hw3:簡答題

  1. 請說明 SQL Injection 的攻擊原理以及防範方法
  2. 請說明 XSS 的攻擊原理以及防範方法
  3. 請說明 CSRF 的攻擊原理以及防範方法

請將答案寫在 hw3.md

挑戰題

幫每個留言都新增一個「讚」的按鈕,使用者可以點任何留言讚,但只能點一次。再點一次的話會取消讚。前端介面要顯示總共被讚了幾次。

超級挑戰題

支援多層子留言,最多到五層。意思就是說,我的留言可以長這樣(--代表一層):

大家好,我是新的會員
-- 你好
---- 幸會幸會
---- 最近好嗎
-- 安安,我台北人
---- 我也台北人欸
------ 有人是高雄人嗎?
------ 有人嗎?
-------- 我是高雄人
-------- 高雄有什麼好吃的
---- 好巧喔
---- 台北好玩的點有什麼
-- 哈囉,我也是新的會員