1. 程式人生 > >web開發安全性的一些思考

web開發安全性的一些思考

作WEB開發的時候,很少對深層次的安全性進行考慮,國內現在的氛圍也不是太好,讀書的時候總是會逛烏雲,後面工作一直也沒怎麼考慮,都是依靠框架去解決問題。但是由於安全部門對我們的網站檢測比較多,雖然都是指令碼檢測的,但是依舊鬧出了很多事情,需要處理
處理的辦法,指令碼掃描一般都是掃描框架漏洞,或者字串,還有xml包處理的一些問題。處理起來並不複雜,通常是升級,加過濾,加判斷。這些指令碼都能通過。
但是假如我自己現在突然成為程式的壞人,我是否能攻破我們的系統了?我思考了一下,我覺得完全沒問題,給我一個基礎賬號,基本上可以更改任何資料了,因為我們的介面判斷並沒有做許可權控制,只要是一個有敵意的公司,如果真想給我們麻煩,我們肯定是沒辦法的。這也是現在常見的WEB開發人員的一個素質的缺失。或者說產品已經迭代了很久了,很難去動程式碼去改。
有一種方法叫做IP限制,這種方法簡直是無腦至極,但是又非常有效,能幹掉大部分的惡意指令碼,對後臺的攻擊。但是這樣子侷限性非常大,這是國企的ERP常見的使用方式,不考慮使用人的友好性。
我們現在會從三個角度出發
前端的介面無法改變,以前也沒有做check,我們用Node或者其他封裝一箇中間層出來,作為介面的轉發,在這層check和防止攻擊
後端的加日誌,IP,做異常監控,為什麼不IP限制?不能做,做了異常有什麼好處了?其實很少人會去攻擊,然後做了日誌,後面就可以去查,恢復。一種亡羊補牢的手段
重構程式碼,先把本來不用暴漏的介面暴漏出去的先給改回來,比如說A->B是非暴漏,但是B->C是暴漏的,導致A是暴漏的。B這裡就是一個豬隊友。之前加日誌了,因為做的是AOP,那麼我這裡同樣也可以改改,加功能成功為安全攔截,但是這裡我還沒有完全改好的原因是,工作量太大,並且最主要是怕出問題,一出問題,就爆炸了,所以改的小心翼翼

相關推薦

web開發安全性一些思考

作WEB開發的時候,很少對深層次的安全性進行考慮,國內現在的氛圍也不是太好,讀書的時候總是會逛烏雲,後面工作一直也沒怎麼考慮,都是依靠框架去解決問題。但是由於安全部門對我們的網站檢測比較多,雖然都是指令碼檢測的,但是依舊鬧出了很多事情,需要處理 處理的辦

學習移動web開發一些小筆記

1、將偽類轉化為塊級元素的三種方法 h3::before{ content:""; display:blcok; /*下面兩種同樣可以達到講偽類轉化成塊級元素*/ position:absolute; float:left; } 2、去除i

Go遊戲伺服器開發一些思考(十):goroutine和coroutine

概要 go語言的特色之一就是goroutine。也就是go協程。由於協程這個東西在go語言之前,用到相對比較少,大家對協程的理解程度不一,或有偏差。比如本人剛接觸goroutine時,就對其比較畏懼,因為不知道它到底是如何運作的。因此有必要深入瞭解下什麼是協程

Go遊戲伺服器開發一些思考(十七):IO遊戲同步(三)

概要 在本系列的11章、14章中,討論了IO遊戲同步;並介紹了一種同步方式:每100ms傳送一次全量狀態包;介紹了作為抗網路波動的優化手段,使用UDP協議來發這個狀態包。 本章將深入討論,網路波動下的同步問題。 TC命令模擬網路環境 既然要討論壞的網

Go遊戲伺服器開發一些思考(四):綜合考察(下)

(接下來的內容,大部分都是純邏輯問題,與語言沒有多大關係。Go語言的作用就是利用它的語言特性,提供介面來應對變化) 世界場景搭建 Cell伺服器 拆出Cell服務,是業內公認的。MMO RP

關於敏捷開發一些思考

    2001年的時候,17位大牛釋出了敏捷宣言,從此敏捷作為一個帶有特殊含義的名詞慢慢為人們所接受。有趣且少有人提及的是,這17位大牛經過三天的討論後,釋出的僅僅是敏捷宣言和原則,卻沒有指明落地的方法和工具。     為什麼不指明落地的方法和工具呢?是因為大牛們沒有這個

Go遊戲伺服器開發一些思考(二十五):Redis的Docker Swarm部署

痛點 在redis 4出來之前,redis哨兵、redis叢集 是無法通過簡單的方式支援Docker Swarm的。原因是Docker Swarm的NAT埠對映機制,會導致redis無法正確獲取宿主IP、埠。 在redis 4之後,官方通過在redis.co

Go遊戲伺服器開發一些思考(二):綜合考察(上)

對Go做體檢 Go語言在遊戲伺服器方向的開發,起步比較晚。有必要考察下使用Go來實現,該怎麼去做,會遇到什麼問題,以及怎麼克服。這裡把使用Go語言開發MMO RPG遊戲作為考察物件,對Go做一次體檢。 MMO RPG最小功能清單 首先,羅列下開發一個M

Go遊戲伺服器開發一些思考(一):語言層面

Go是比C++更好用的高階語言 使用Go作為伺服器開發的主語言前,首先需要對Go語言做下定性。在接觸Go前,可能給人的印象(至少是我),Go是一門指令碼語言。看了 官方文件 ,才知道Go是一門高階語言。與C++相比,它有以下優勢: 面向介面的程式設計 沒

Go遊戲伺服器開發一些思考(八):Docker橋接網路及固定IP

為什麼需要Docker的橋接網路 有時我們需要把Docker容器暴露到某個網段,這樣就可以把一個Docker容器看成一臺物理機。這時就需要用到Docker的橋接網路。 比如 在做Redis叢集時,通常現有的Redis管理軟體會通過ssh來管理一組Redis。

Go遊戲伺服器開發一些思考(二十八):登入流程(一)

過程與不確定因素 帳號登入是一個跨多個服務程序的一段持續的互動過程。 如IO遊戲,會涉及到的遊戲伺服器有: 登入伺服器 資料庫伺服器 快取伺服器 中心伺服器(很多別名,如CenterServer、WorldServer;也可能是redis、etcd之類的

關於嵌入式軟體開發一些思考

    今天是第一次開始寫技術部落格, a dear dairy moment. 首先感謝這個論壇上那些已經進入計算機軟體開發自由王國的前輩高手們,正是他們在網路上不求回報地留下一篇篇精闢文章,如一盞盞指路明燈,真正為後來者照亮前進的方向;同時也想鼓勵那些仍然身處迷霧苦苦掙

java在web開發安全性方面的總結

1.       客戶輸入的原始資料進行校驗不依賴於Script。雖然JavaScript等等的客戶端的輸入資料的校驗即使比較方便也不能使用因為安全性方面的原因。指令碼是不安全的,使用者可能遮蔽指令碼,我們可以將使用者資料送入伺服器端,在伺服器上驗證字串的合法性。 2.  

iPad上web 開發一些事情

一、META、Link設定 1、設定Safari的頁面寬度(在iPhone中預設寬度為980px) <meta name=”viewport” content=”user-scalable=no, width=device-width” /> 2、新增Hom

web開發一些常用的工具類的網站

項目目錄 圖標 nbsp 菜鳥 rip icons power html css som 持續更新中.......... 1. 網頁圖標網站: http://fontawesome.io 下面的鏈接瀏覽其提供的圖標: http://fontawesome.io/ico

主流的一些web開發軟件

original class ide 全面 nbsp ans 前端開發 d+ dream 常見的前端開發工具 記事本: 提示功能較差 editplus/nodepad++: 提示功能較差 Dreamwaver: 更偏向設計 Sublime: 輕量級,自帶功能不太全, 但

我的第一個python web開發框架(5)——開發前準備工作(了解編碼前需要知道的一些常識)

turn 框架 strong pep8 加密與解密 python開發 lan 二次 沒有   中午吃飯時間到了,小白趕緊向老菜坐的位置走過去。   小白:老大,中午請你吃飯。   老菜:哈哈...又遇到問題了吧,這次得狠狠宰你一頓才行。   小白:行行行,只要您賞臉,

關於web服務安全的一些思考

拼接 返回 上下文 關於 加密 密碼 ref 問題 shiro 一、問題:   在開發web項目是時,安全問題有以下幾種問題:   (1)用戶可以自己偽造一個URL請求來進行訪問嗎?   (2)用戶不在服務器登錄,可以自己封裝出用戶名、密碼進行訪問嗎?   (3

面試題思考web中關於一些容器基本概念的簡單總結

完成 郵件服務 ini 語言 servle 關心 就會 數據庫連接 response 關鍵字:應用服務器、web服務器、web容器、jsp容器、servlet容器。 1.應用服務器: 作為應用程序服務器,要求可以通過各種協議(包括 HTTP 協議)把商業邏輯暴露給(expo

web開發一些資源的在線引用地址

font pad pre jquer onos 依賴 tst ack hit <!-- Bootstrap --> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/c