SQL注入是一種常見的Web安全漏洞,***者利用這個漏洞,能夠訪問或修改數據,或者利用潛在的數據庫漏洞進行***。SQL注入,就是經過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來講,它是利用現有應用程序,將(惡意的)SQL命令注入到後臺數據庫引擎執行的能力,它能夠經過在Web表單中輸入(惡意)SQL語句獲得一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。SQL注入的本質:數據和代碼未分離,即數據當作了代碼來執行html
XSS (Cross-Site Scripting),跨站腳本***。跨站腳本***是指經過存在安全漏洞的Web網站註冊用戶的瀏覽器內運行非法的HTML標籤或JavaScript進行的一種***。前端
跨站腳本***有可能形成如下影響:mysql
XSS 的原理是惡意***者往 Web 頁面裏插入惡意可執行網頁腳本代碼,當用戶瀏覽該頁之時,嵌入其中 Web 裏面的腳本代碼會被執行,從而能夠達到***者盜取用戶信息或其餘侵犯用戶安全隱私的目的。正則表達式
3、CSRFCSRF(Cross Site Request Forgery),即跨站請求僞造,是一種常見的Web***,它利用用戶已登陸的身份,在用戶絕不知情的狀況下,以用戶的名義完成非法操做。sql
完成 CSRF ***必需要有三個條件:shell
藉助未驗證的URL跳轉,將應用程序引導到不安全的第三方區域,從而致使的安全問題。數據庫
1.referer的限制若是肯定傳遞URL參數進入的來源,咱們能夠經過該方式實現安全限制,保證該URL的有效性,避免惡意用戶本身生成跳轉連接npm
2.加入有效性驗證Token咱們保證全部生成的連接都是來自於咱們可信域的,經過在生成的連接里加入用戶不可控的Token對生成的連接進行校驗,能夠避免用戶生成本身的惡意連接從而被利用,可是若是功能自己要求比較開放,可能致使有必定的限制。後端
5、點擊劫持經過iframe透明化,漏出來一個按鈕,誘惑用戶點擊。瀏覽器
如何防護?
1.X-FRAME-OPTIONS是一個 HTTP 響應頭,在現代瀏覽器有一個很好的支持。這個 HTTP 響應頭 就是爲了防護用 iframe 嵌套的點擊劫持***。X-FRAME-OPTIONS有3個值可選:DENY,表示頁面不容許經過 iframe 的方式展現SAMEORIGIN,表示頁面能夠在相同域名下經過 iframe 的方式展現ALLOW-FROM,表示頁面能夠在指定來源的 iframe 中展現
2.經過js的方法判斷,來隱藏iframe顯示的頁面。
6、OS命令注入***OS命令注入***指經過Web應用,執行非法的操做系統命令達到***的目的。
https://example.com/ssss?z=23&y=222
如何防護?
1.後端對前端提交內容進行規則限制(好比正則表達式)。
2.在調用系統命令前對全部傳入參數進行命令行參數轉義過濾。
3.不要直接拼接命令語句,藉助一些工具作拼接、轉義預處理,例如 Node.js 的 shell-escape npm包