沒有絕對安全的網站,web常見的攻擊也是永遠繞不開的話題,今天簡單聊聊XSS。html
XSS 全稱是Cross Site Scripting(跨站腳本), 爲了與「CSS」區分開,故簡稱XSS。是指黑客往HTML文件中或者DOM中注入惡意腳本,從而再用戶瀏覽頁面時利用注入的惡意腳本對用戶實施攻擊的一種手段。前端
惡意腳本能夠作哪些事情web
......數據庫
在一個反射型XSS攻擊過程當中,惡意JS腳本屬於用戶發送給網站請求中的一部分,隨後網站又把惡意JS腳本返回給用戶,當惡意腳本再用戶頁面中被執行時,黑客就能夠利用該腳本作一些惡意操做。express
server.jssegmentfault
const express = require('express'); const router = express.Router(); router.get('/', (req, res, next) => { res.render('index', { title: 'Express', xss: req.query.xss, }) }); module.exports = router;
index.eje瀏覽器
<!DOCUMENT html> <html> <head> <title><%= title %> </title> </head> <body> <h1><%= title %></h1> <p>Weclome to <%= title %></p> <div> <%= xss %> </div> </body> </html>
在瀏覽器打開安全
http://localhost:3000/?xss=123
頁面正常展現
可是打開下面的連接服務器
http://localhost:3000/?xss=<script>alert('你被 xss 攻擊了')</script>
頁面以下
經過這個例子,能夠看出用戶將一段含有惡意JS腳本請求提交給Web服務器,Web服務器收到請求時,又將惡意代碼發送給瀏覽器,這就是反射型XSS攻擊。在現實生活中,黑客常常會經過Q羣或者郵件等方式誘導用戶去點擊這些惡意連接,因此平時不要亂點連接。cookie
與存儲型XSS攻擊的區別:Web服務器不會存儲反射型XSS攻擊的代碼。
基於DOM的XSS攻擊是不牽涉到頁面Web服務器的。黑客經過各類手段將惡意腳本注入到用戶頁面中,好比經過網絡劫持(Wifi路由器劫持、本地惡意軟件)在頁面傳輸過程當中修改HTML頁面的內容。
備註:https只能增長攻擊難度,不能防止全部場景的基於DOM的XSS攻擊
CSP有以下幾個功能:
沒有絕對安全的系統,因此咱們只能儘可能作到知道原理,而後預防,提升攻擊難度。
技術自己是個好東西,可是好技術要用在對的地方纔能顯示出它的價值
個人其餘文章:
JS代碼運行過程簡述(一)
歡迎一塊兒快樂的挖坑、填坑。哈哈哈