安全開發相關注意事項
1.sql注入:這個很常規了,不要拼字串以及過濾關鍵字都可以防住,需要注意的是,Cookie提交的引數也是可以導致注入漏洞的。
2.旁註:就是說在保證自己的程式沒問題的同時,也要保證同臺伺服器的其他站點沒問題。至少要設定好系統許可權,即使別人的站點出問題也不能影響自己的站點。
3.上傳:儘量不要有上傳功能,如果必須有上傳功能。也要做到以下方面:不能讓使用者定義路徑、檔名,限制好可上傳的檔案型別。同時要限制好許可權,基本規則:執行和可寫是互斥許可權,不應同時存在。
4.口令強度:在設定密碼之類的功能上應加入密碼強度要求。伺服器上線部署的時候,應該立即把預設密碼修改掉。
5.防窮舉機制:適當的加入驗證碼,防止別人用程式窮舉賬戶密碼。
6.第三方控制元件:使用第三方控制元件,應經過嚴格的稽核(很多第三方控制元件上作者故意留有缺陷),並且剔除不必要的功能再使用。
7.許可權最小化:能給只讀就給只讀,儘量具體到每一個子目錄。
8.目錄非常規化:得到管理員賬戶密碼,但是找不到後臺登入地址也是很難入侵的。後臺路徑不要動不動就是
10.XSS:俗稱跨站指令碼攻擊。使用者把HTML、JS之類的標籤輸入到編輯框,入庫之後,再顯示的時候可以導致版面錯誤、JS能解析執行之類的都屬於XSS的範疇。如果攻擊者插個Iframe連的是個木馬網頁,那檢視這個內容的人就悲劇了。解決方法:過濾大於小於號即可
11.CSRF URL跳轉未驗證漏洞:類似於XSS,只是把程式碼寫在URL裡,如
http://xxxx/logout.aspx?preURL=aaaa.html
即經常出現在登入退出的頁面,通過引數的preURL決定完成動作的時候跳向哪個頁面,如果照樣
http://xxxx/logout.aspx?preURL=javascript:alert('test'
就可以彈框,說明我們的js程式碼已經被執行起來了。
總之一句話,開發過程中,不要相信使用者提交的任何資料,規劃好目錄,做到許可權最小化,關閉、刪除不必要的東西,就相對會安全很多了。
cert 安全編碼建議:
1、驗證輸入:從不可信任的資料來源中進行的輸入需要驗證。合適的輸入驗證能減少大量軟體的弱點。必須對大部分的資料來源持懷疑的態度,包括命令列引數,網路介面,環境變數及使用者檔案。
2、留言編譯器警告:編譯程式碼時使用編譯器的最高警告級別,通過修改程式碼來減少警告。
3、針對安全策略的架構和設計:構建軟體架構和設計軟體時採用安全策略。例如:如果系統在不同的時間需要不同的許可權,則考慮將系統分成不同的互相通訊的子系統,每個系統擁有合適的許可權。
4、保持簡單性:設計越簡單越好,複雜的設計提高了實現時錯誤的可能性。
5、預設拒絕:預設的訪問策略建立在允許的基礎上。也就是說,預設的訪問是拒絕的,除非標明是允許的。
6、最小許可權原則:每個程序擁有完成工作所需的最小許可權。任何許可權的擁有時間要儘可能的短。這一方法能阻止攻擊者利用許可權提升執行任意程式碼的機會。
7、清潔傳送給其他系統的資料:清潔所有傳送給複雜子系統的資料,例如:命令外殼(shells),關係資料庫,商用元件。攻擊者可能通過SQL命令或者注入進行攻擊。這不是靠子系統通過輸入驗證來避免的問題,因為子系統不清楚呼叫的上下文,而呼叫過程指導上下文,所以有責任在呼叫子系統時清潔資料。
8、縱深防禦:這是一個通用的安全原則,從多個防禦策略中規避風險,如果一層防禦失效,則另一層防禦還在發揮作用。
9、使用有效的安全質量保證技術:好的質量保證技術能有效的發現和消除弱點。滲透測試、Fuzz測試,以及原始碼審計都能作為一種有效的質量保證措施。獨立的安全審查能夠建立更安全的系統。
10、採用安全編碼標準:為開發語言和平臺指定安全編碼標準,並採用這些標準。
相關推薦
安全開發相關注意事項
1.sql注入:這個很常規了,不要拼字串以及過濾關鍵字都可以防住,需要注意的是,Cookie提交的引數也是可以導致注入漏洞的。 2.旁註:就是說在保證自己的程式沒問題的同時,也要保證同臺伺服器的其他站點沒問題。至少要設定好系統許可權,即使別人的站點出問題也不能影響自己的站
Laravel 開發 API 注意事項
Restful:全稱為 Representational State Transfer,直譯為表現層狀態轉移,或許可以解釋為用 URL 定位資源,用 HTTP 動詞描述操作。 RESTful 設計原則 * HTTPS &n
Android 混合開發以及注意事項以及h5上圖片在android機器上不顯示問題
因為這個app地嵌入h5做導航,所以需要呼叫android的互動進行獲取定位資訊和其他一些功能,做的效果是H5調Android打電話以及呼叫android手機相簿選擇圖片,現在總結下: 一.打電話以及定位: 1.定義h5呼叫的名稱: webView.addJavascriptInt
《連載 | 物聯網框架ServerSuperIO教程》- 7.自控通訊模式開發及注意事項
目 錄 7. 自控通訊模式開發及注意事項... 2 7.1 概述... 2 7.2 通訊機制說明... 2 7.3 裝置驅動開發注意事項... 3 7.3.1 實時傳送資料... 3 7.
《連載 | 物聯網框架ServerSuperIO教程》- 8.單例通訊模式開發及注意事項
目 錄 8.單例通訊模式開發及注意事項... 2 8.1 概述... 2 8.2 通訊機制說明... 2 8.3 裝置驅動開發注意事項... 2 8.4 宿主程式服
《連載 | 物聯網框架ServerSuperIO教程》- 5.輪詢通訊模式開發及注意事項。附:網友製作的類庫說明(CHM)
目 錄 5. 輪詢通訊模型開發及注意事項... 2 4.1 概述... 2 4.2 通訊機制說明... 2 4.3 裝置驅動開發注意事項... 3 4.3.1 實時傳送資料... 3 4.3.2
《連載 | 物聯網框架ServerSuperIO教程》- 6.併發通訊模式開發及注意事項
目 錄 6. 併發通訊模式開發及注意事項... 2 6.1 概述... 2 6.2 通訊機制說明... 2 6.3 裝置驅動開發注意事項... 3 6.3.1 實時傳送資料... 3 6.3.
將 Spring boot 專案打成可執行Jar包,及相關注意事項(main-class、缺少 xsd、重複打包依賴)
最近在看 spring boot 的東西,覺得很方便,很好用。對於一個簡單的REST服務,都不要自己部署Tomcat了,直接在 IDE 裡 run 一個包含 main 函式的主類就可以了。 但是,轉念一想,到了真正需要部署應用的時候,不可能通過 IDE 去部署
linux下進行C++開發所注意事項
轉載自:https://www.cnblogs.com/lidabo/p/5888997.html 最近專案需求,需要在Linux下開發C++相關專案,經過一番摸索,簡單總結了一下如何通過VS Code進行編譯除錯的一些注意事項。 關於VS Code在Linux下的安裝這裡就不提了,不管是C
STM32例項之LED燈閃爍控制以及相關注意事項
在本例項中,主要是為了實現LED燈的閃爍。首先分析LED的驅動方式,本實驗中使用的是OpenM3V,內建8個LED均採用灌流方式驅動(低電平亮)。如果想要實現其閃爍,則需要給相應埠持續不斷的高低交替電
API介面開發的注意事項
1、單檔案實現多介面的形式有很多種,例如:if..elseif.. 或 switch 或 動態方法 (也就是TP的這種訪問函式體的形式) 2、對於資料的輸出最好用json,json具有相當強大的跨平臺性,市場上各大主流程式語言都支援json解析,json正在逐步取代xm
專案開發過程注意事項(問題)
一、資料流過程 在開發過程中一般採用資料請求服務的方式對資料進行接收。資料流程為:資料平臺(集體推送,採用非同步資料進行傳輸),接下來中間開發資料服務(中轉服務),最後推送至前端(app、web),最後在本地進行相應的資料計算
OpenCV安裝 問題總結以及相關注意事項
本人opencv版本為opencv-3.3.0-vc14 ,這個是目前最先的版本,vc-14表示的意思是visual studio 2017,解壓或者安裝之後,只找到了x64的bin檔案和lib檔案,沒有x86的,這個很奇怪。所以,本次opencv的安裝和編譯都
關於Linq to Sql 中的left join 中defaultifempty的相關注意事項
var q = (from c in (from a1 in db.StoreIns group a1 by a1.StoreNum into g
mybatis>mapper中直接返回boolean型資料以及相關注意事項
通常情況下,我們一般會在service中進行真與假的邏輯判斷,比如先取出一個物件,根據物件是否為空來判斷我們的真假邏輯,這部分可以移動到mapper中進行處理。 示例,我們做一個暱稱是否存在的驗證: <select id="ifExist" parameter
php關於網站安全的一些注意事項
上傳檔案時,不要相信瀏覽器提供的檔名, 對檔名進行判斷,過濾或hash 不要將網站檔案放在網站根目錄下,放在系統的其他目錄下 對請求的資料進行過濾 對請求的資料進行轉義,使用html實體轉義函式
Android BLE應用開發的注意事項
1.在工廠中生產了很多裝置一起堆放時應用會可能發生ANR,原因是裝置很多時會不停的呼叫onLeScan()方法,在 BluetoothAdapter.startLeScan()的時候,在BluetoothAdapter.LeScanCallback.onLeScan()中不
Ionic2自定義遮罩層和相關注意事項
1、自定義遮罩層步驟 1.1先建立一個展示框,在遮罩層之上 <div class="aboutPage-isShowDiv" *ngIf="isShow"> <h1>放內容</h1> </di
伺服器的相關注意事項
伺服器注意事項 1.遠端伺服器不允許關機,只能重啟。 2.重啟時應該關閉服務。 3.不要在伺服器訪問高峰執行高負載命令。(例如大資料量複製、壓縮、掃描等就是高負載命令) 4.遠端配置防火牆時
CDH大資料計算管理平臺安裝所踩的坑及相關注意事項
最近公司的基於CDH的Hadoop大資料計算平臺需要遷移,由於時間過長,原來的搭建步驟以及踩過的坑都忘得差不多了,現在為了將來能夠有個依據,特將本次重新搭建平臺所踩的坑給記錄下來。 使用的軟體及版本: CDH-5.14.2-1.cdh5.14.2.p0.3