下面一系列的漏洞都可以對PHP或Laravel框架寫的站點造成威脅。有一些廣為人知、攻擊手段簡單,所以很容易被利用來進行攻擊。有一些漏洞需要特別關注,避免在你的站點出現。
1。 SQL 注入
SQL注入可能是最知名且常見的漏洞了。
說白了,它允許攻擊者將SQL語句注入到你未經處理的程式碼中。
如果你的程式碼像以下這樣:
$post_id = $_POST[‘post_id’];$sql = “DELETE FROM posts WHERE user_id = 1 AND id = $post_id”;\DB::statement($sql);
如果有人在提交
post_id
時輸入
1 OR 1
,你的語句會組合成這樣:
$sql = “DELETE FROM posts WHERE user_id = 1 AND id = 1 OR 1”;
最終你的語句執行起來就是:刪除所有使用者的所有帖子!
2。 XSS (跨站指令碼攻擊)
跨站指令碼攻擊與 SQL 注入類似。它允許注入
HTML / JavaScript
程式碼到你的 HTML 頁面中 。
想像一下類似 Google 這樣的頁面,使用者可以在其中輸入搜尋查詢。
在結果頁面上,您將顯示他們正在搜尋的內容:
<?php echo ‘You searched for: ’ 。 $_GET[‘search_query’]; ?>
如果攻擊者會輸入這樣的內容:
JavaScript
程式碼將被瀏覽器執行,使用者會看到彈出視窗 “surprise!” 。
攻擊者可以做些什麼呢,可以竊取 cookies ,重定向使用者到其他網站,竊取密碼。什麼,你的密碼是 123456 ?
3。 CSRF (跨站請求偽造)
例如在你的網站上有使用者可以用來刪除賬戶的連結。
猜測以下如果攻擊者提交一個如下這樣的評論會發生什麼:
lol :D
使用者將在檢視此評論的時候刪除他們的賬號。 讓我們繼續發表評論。
4。 點選劫持
這種攻擊型別試圖讓你點選你不想要的地方。例如透過在其他按鈕頂部放置不可見的
Facebook like
按鈕。
另一個例子是在
中開啟 Facebook ,並將這個 iframe 放置在 JavaScript 程式碼中,所以無論何時你點選某個地方,你總是會點選到 Facebook 頁面上的分享按鈕。
5。 上傳檔案到 public_html
這種攻擊形式是,攻擊者上傳 。php 檔案或者其他可執行檔案到你的 public_html 目錄。。
想象一下如果你的網站有圖片上傳功能,同時沒有檢測上傳檔案的型別。我彷彿看見一場上傳風暴撲面而來。。。
6。 ZIP 炸彈
一些網站允許使用者上傳 。zip 文件,然後進行解壓縮和再處理。但這裡存在一個大問題。
很有可能這個 。zip 文件大小僅有 42 KB,但在解壓後會佔用 4718592 GB 的空間。你可以把它想象成一顆原子彈。
樣例檔案
7。 file_get_contents()
使用這個函式可以輕鬆的讀取檔案內容:
echo file_get_contents(‘https://some-website。com/friend-list。txt’);
但是你如果讓攻擊者輸入他想要的,他可以從你伺服器進入的檔案,例如:
echo file_get_contents(‘。env’);ORecho file_get_contents(‘secret-code。php’);
這個函式將會從你的伺服器讀取檔案和展示內容給攻擊者。
這個漏洞是很難找到的,就像皮卡丘在寵物小精靈之中一樣難找。