知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當前位置>首頁 » 新聞資訊 » 網(wǎng)站建設 >
Web開發(fā)常見安全問題及解決
發(fā)表時間:2018-5-22
發(fā)布人:葵宇科技
瀏覽次數(shù):47
Web攻擊動機:
- 惡作劇;
- 關閉Web站點,拒絕正常服務;
- 篡改Web網(wǎng)頁,損害企業(yè)名譽;
- 免費瀏覽收費內容;
- 盜竊用戶隱私信息,例如Email;
- 以用戶身份登錄執(zhí)行非法操作,從而獲取暴利;
- 以此為跳板攻擊企業(yè)內網(wǎng)其他系統(tǒng);
- 網(wǎng)頁掛木馬,攻擊訪問網(wǎng)頁的特定用戶群;
- 仿冒系統(tǒng)發(fā)布方,誘騙用戶執(zhí)行危險操作,例如用木馬替換正常下載文件,要求用戶匯款等
1.SQL注入(SQL Injection)
定義
由于程序中對用戶輸入檢查不嚴格,用戶可以提交一段數(shù)據(jù)庫查詢代碼,根據(jù)程序返回的結果,獲得某些他想得知的數(shù)據(jù),這就是所謂的SQL Injection,即SQL注入。原因分析
其本質是對于輸入檢查不充分,導致SQL語句將用戶提交的非法數(shù)據(jù)當作語句的一部分來執(zhí)行。由于我們的部分WEB應用,采用Jsp+JavaBean或SSH框架,代碼中會有直接寫SQL(或HQL)語句,而有些SQL是用拼串實現(xiàn)的。
風險
SQL盲注:如果系統(tǒng)屏蔽了詳細的錯誤信息,那么對攻擊者而言就是盲注入,可能會查看、修改或刪除數(shù)據(jù)庫條目和表使用SQL注入的認證旁路:可能會繞開 Web 應用程序的認證機制
例子:
預防措施
- 嚴格限定參數(shù)類型,明確參數(shù)檢驗的邊界,必須在服務端執(zhí)行數(shù)據(jù)驗證
- 采用參數(shù)化查詢的方法(推薦)
- 內置過濾系統(tǒng)(本質是黑名單,很常見但是不推薦)
- 數(shù)據(jù)庫加固
2.跨站腳本漏洞(XSS)
定義
它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執(zhí)行,從而達到惡意用戶的特殊目的。XSS屬于被動式的攻擊,因為其被動且不好利用,所以許多人常忽略其危害性。分類
持久型XSS(Persistent),與非持久型XSS相反,它是指通過提交惡意數(shù)據(jù)到服務器,通過Web應用程序輸出惡意數(shù)據(jù)輸出到頁面,持久型XSS多出現(xiàn)在Web郵箱、BBS、社區(qū)等從數(shù)據(jù)庫讀出數(shù)據(jù)的正常頁面(比如BBS的某篇帖子中可能就含有惡意代碼)非持久型XSS(Non-persistent),即反射型,它是指那些瀏覽器每次都要在參數(shù)中提交惡意數(shù)據(jù)才能觸發(fā)的跨站腳本漏洞。
例子:
預防措施
一.過濾:
- 有時候過濾會導致意外的結果,例如alice’s 變成了alices。
- 有時候需要多次過濾,例如<scrip<script>t>過濾掉<script>后還是<script>。
- 需要注意多個過濾器的先后次序。當多個過濾器一起生效時,有可能后進行的過濾導致前面的過濾失效。例如過濾器1要過濾ABC,過濾器2要過濾DEF,那么ABDEFC在依次通過1,2過濾器后變成了ABC,這樣相當于繞開過濾器1。
二.輸入編碼:
- 輸入編碼往往可以有全局的解決方案,從設計的角度來看,這是最佳的。
- 一旦數(shù)據(jù)已經(jīng)入庫,就難以用輸出編碼處理。
三.輸出編碼:
- 輸出編碼有助于開發(fā)者細粒度控制輸出,但也導致了工作量的增加。
- 輸出編碼可以解決輸入編碼無法處理的已入庫數(shù)據(jù)。
四.用戶安全加固:
- 小心點擊來源不明的URL。
- 對瀏覽器進行安全加固,例如禁止ActiveX。
- 永遠不要點擊自動登錄信息!
3.跨站請求偽造(XSRF )
風險
可能會竊取或操縱客戶會話和 cookie,它們可能用于模仿合法用戶,從而使黑客能夠以該用戶身份查看或變更用戶記錄以及執(zhí)行事務原因分析
應用程序使用的認證方法不充分典型攻擊方式
- 在頁面中加入一個<img>標簽,瀏覽器就會發(fā)送一個請求,以獲取其src屬性引用的值。
- 攻擊者將敏感操作的URI作為src
- 繼承Cookie,以瀏覽者的身份作敏感訪問并操作
- 危害:在用戶無意識情況下進行危險操作
預防措施
檢查 HTTP 頭部 Refer 信息Server端在收到請求之后,可以去檢查這個頭信息,只接受來自本域的請求而忽略外部域的請求
使用一次性令牌
每個請求都帶上一個由服務器生成的隨機參數(shù)。然后在服務器端核對該參數(shù),如果和下發(fā)的隨機數(shù)不同,則可以認為有人在偽造請求。因為攻擊者無法知道他本次攻擊的http請求需要帶什么樣的隨機數(shù)才是有效的。
使用驗證圖片
圖片驗證信息很難被惡意程序在客戶端識別,因此能夠提高更強的保護
判斷HTTP請求類型
采用request.getMethod()判斷請求的方式是否POST
直接獲取數(shù)據(jù)
對request再次封裝,直接獲取form的數(shù)據(jù)不接收URL的 ,request.getForm(“user”)
4.文件上傳漏洞
常見的驗證錯誤
- 允許上傳可執(zhí)行文件
- 使用客戶端JS驗證上傳文件類型
- 使用黑名單限制上傳文件類型
- 文件名/存儲目錄名可自定義
- 文件名中特殊字符處理不當
預防措施
- 首先編碼者需要對上傳頁面代碼嚴格把關,特別是在保存文件的時候,考察可能出現(xiàn)的異常字符,如../,..\,空字符等。
- 其次,對文件擴展名檢查要采取“允許jpg,gif…”這樣的檢查,而不要采取“不允許asp…”這樣的檢查;
- 最好對上傳文件的目錄設置不可執(zhí)行,這可以通過web服務器配置加固實現(xiàn)。
相關案例查看更多
相關閱讀
- 網(wǎng)站排名優(yōu)化
- 汽車報廢
- 昆明小程序定制開發(fā)
- 網(wǎng)站建設專業(yè)品牌
- 云南軟件設計
- 網(wǎng)站建設列表網(wǎng)
- 云南網(wǎng)站建設專業(yè)品牌
- 云南網(wǎng)站建設方法
- 云南網(wǎng)站建設報價
- 百度小程序開發(fā)公司
- 網(wǎng)站開發(fā)公司哪家好
- 云南省建設廳官方網(wǎng)站
- 云南建設廳官方網(wǎng)站
- 報廢車拆解軟件
- 昆明做網(wǎng)站建設的公司排名
- 網(wǎng)站建設高手
- 昆明網(wǎng)站設計
- 開發(fā)制作小程序
- 云南網(wǎng)站建設專家
- 網(wǎng)站制作哪家好
- 云南省建設廳網(wǎng)站
- 汽車拆解系統(tǒng)
- 退款
- 微分銷
- 云南手機網(wǎng)站建設
- 網(wǎng)站建設招商
- 迪慶小程序開發(fā)
- web前端
- 網(wǎng)站搭建
- 支付寶小程序被騙