国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

開發(fā)安全Java應(yīng)用程序的13條規(guī)則((Mark)

這篇具有很好參考價(jià)值的文章主要介紹了開發(fā)安全Java應(yīng)用程序的13條規(guī)則((Mark)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

漏洞喜歡隱藏在復(fù)雜性中,因此在不犧牲功能的情況下使代碼盡可能簡(jiǎn)單。使用成熟的設(shè)計(jì)原則(例如DRY)(不要重復(fù)),將幫助您編寫更易于查看問題的代碼。

始終在代碼中公開盡可能少的信息。隱藏實(shí)施細(xì)節(jié)支持可維護(hù)和安全的代碼。這三個(gè)技巧將大大有助于編寫安全的Java代碼:

  • 充分利用Java的訪問修飾符。知道如何為類,方法及其屬性聲明不同的訪問級(jí)別將大大保護(hù)代碼。可以設(shè)為私有的所有內(nèi)容都應(yīng)該為私有的。
  • 避免反射。在某些情況下,應(yīng)該使用這種高級(jí)技術(shù),但是在大多數(shù)情況下,您應(yīng)該避免使用它們。使用反射消除了強(qiáng)類型,而強(qiáng)類型可能會(huì)給您的代碼帶來弱點(diǎn)和不穩(wěn)定性。將類名與字符串進(jìn)行比較很容易出錯(cuò),并且很容易導(dǎo)致名稱空間沖突。
  • 始終定義盡可能小的API和界面。解耦組件并使它們?cè)诒M可能小的區(qū)域內(nèi)交互。即使應(yīng)用程序的某個(gè)區(qū)域感染了漏洞,其他區(qū)域也將是安全的。

Java安全性規(guī)則2:避免序列化

這是另一個(gè)編碼技巧,但重要的是要成為一個(gè)規(guī)則。 序列化接受遠(yuǎn)程輸入,并將其轉(zhuǎn)換為完全賦值的對(duì)象。 它省去了構(gòu)造函數(shù)和訪問修飾符,并允許未知數(shù)據(jù)流成為JVM中的運(yùn)行代碼。 結(jié)果,Java序列化在本質(zhì)上是不安全的。

盡可能避免在Java代碼中進(jìn)行序列化/反序列化。 相反,請(qǐng)考慮使用JSON或YAML之類的序列化格式。 永遠(yuǎn)不要公開接收并作用于序列化流的不受保護(hù)的網(wǎng)絡(luò)端點(diǎn)。

Java安全規(guī)則#3:永遠(yuǎn)不要公開未加密的憑證

很難相信,但是這種可避免的錯(cuò)誤會(huì)導(dǎo)致年復(fù)一年的痛苦。

當(dāng)用戶在瀏覽器中輸入密碼時(shí),密碼將以純文本格式發(fā)送到服務(wù)器。那應(yīng)該是它最后一次出現(xiàn)。我們必須先通過單向密碼對(duì)密碼進(jìn)行加密,然后再將其持久保存到數(shù)據(jù)庫中,然后在每次與該值進(jìn)行比較時(shí)再次進(jìn)行加密。

密碼規(guī)則適用于所有個(gè)人身份信息:信用卡,社會(huì)保險(xiǎn)號(hào)等。委托給應(yīng)用程序的任何個(gè)人信息都應(yīng)得到最高程度的保護(hù)。

數(shù)據(jù)庫中未加密的憑據(jù)是一個(gè)巨大的安全漏洞,正在等待攻擊者發(fā)現(xiàn)。同樣,切勿將原始憑據(jù)寫入日志,或以其他方式傳輸?shù)轿募蚓W(wǎng)絡(luò)。要為我們的密碼系統(tǒng)創(chuàng)建一個(gè)加鹽的哈希并務(wù)必進(jìn)行研究并使用推薦的哈希算法。

跳至規(guī)則4:始終使用庫進(jìn)行加密;不要自己動(dòng)手。

Java安全規(guī)則4:使用已知和經(jīng)過測(cè)試的庫

盡可能使用已知的可靠庫和框架。從密碼哈希到REST API授權(quán),這適用于整個(gè)范圍。

幸運(yùn)的是,Java及其生態(tài)系統(tǒng)對(duì)此提供了很好的支持。對(duì)于應(yīng)用程序安全性,Spring Security是事實(shí)上的標(biāo)準(zhǔn)。它提供了廣泛的選擇范圍和靈活性,以適應(yīng)任何應(yīng)用程序體系結(jié)構(gòu),并且融合了多種安全方法。

解決安全性的第一個(gè)本能應(yīng)該是進(jìn)行研究,研究最佳實(shí)踐。例如,如果要使用JSON Web令牌來管理身份驗(yàn)證和授權(quán),查看封裝JWT的Java庫,然后學(xué)習(xí)如何將其集成到Spring Security中。

Java安全性規(guī)則5:對(duì)外部輸入抱有偏執(zhí)

無論是來自用戶輸入表單,數(shù)據(jù)存儲(chǔ)區(qū)還是遠(yuǎn)程API,都不要信任外部輸入。

SQL注入和跨站點(diǎn)腳本(XSS)只是最常見的攻擊,可能是由于錯(cuò)誤處理外部輸入而導(dǎo)致的。一個(gè)不為人所知的例子(其中很多例子)是“billion laughs attack(一種 denial-of-service(DoS)攻擊,它主要作用于XML文檔解析器。它也被稱為指數(shù)實(shí)體擴(kuò)展攻擊,是一種名副其實(shí)的XML炸彈。該攻擊通過創(chuàng)建一系列遞歸的XML定義,在內(nèi)存中產(chǎn)生上十億的特定字符串,從而導(dǎo)致DoS攻擊。原理為:構(gòu)造惡意的XML實(shí)體文件以耗盡服務(wù)器可用內(nèi)存,因?yàn)樵S多XML解析器在解析XML文檔時(shí)傾向于將它的整個(gè)結(jié)構(gòu)保留在內(nèi)存中,上億的特定字符串占用內(nèi)存達(dá)到GB級(jí),使得解析器解析非常慢,并使得可用資源耗盡,從而造成拒絕服務(wù)攻擊。)”,通過這種攻擊,XML實(shí)體擴(kuò)展會(huì)導(dǎo)致拒絕服務(wù)攻擊。

每當(dāng)收到輸入時(shí),都應(yīng)進(jìn)行完整性檢查和消毒。對(duì)于可能呈現(xiàn)給另一個(gè)工具或系統(tǒng)進(jìn)行處理的任何事物尤其如此。例如,如果某些事情可能會(huì)成為OS命令行的參數(shù),必須小心!

一個(gè)特殊的眾所周知的實(shí)例是SQL注入,它將在下一條規(guī)則中介紹。

Java安全規(guī)則#6:始終使用準(zhǔn)備好的語句來處理SQL參數(shù)

每當(dāng)構(gòu)建一條SQL語句時(shí),都有可能插值一段可執(zhí)行代碼。

知道了這一點(diǎn),最好始終使用java.sql.PreparedStatement類來創(chuàng)建SQL。對(duì)于NoSQL存儲(chǔ)(如MongoDB)也存在類似的功能。如果您使用的是ORM層,則實(shí)現(xiàn)將在后臺(tái)使用PreparedStatements。

Java安全規(guī)則#7:不要通過錯(cuò)誤消息來揭示實(shí)現(xiàn)

生產(chǎn)中的錯(cuò)誤消息可以為攻擊者提供豐富的信息來源。堆棧跟蹤尤其可以揭示有關(guān)您正在使用的技術(shù)及其使用方式的信息。避免向最終用戶顯示堆棧跟蹤。

登錄失敗警報(bào)也屬于此類別。通常接受的錯(cuò)誤消息應(yīng)為“登錄失敗”與“未找到該用戶”或“密碼錯(cuò)誤”。為潛在的惡意用戶提供盡可能少的幫助。

理想情況下,錯(cuò)誤消息不應(yīng)顯示您應(yīng)用程序的基礎(chǔ)技術(shù)堆棧。保持該信息盡可能不透明。

Java安全性規(guī)則#8:使安全性發(fā)布保持最新

我們需要經(jīng)常檢查安全更新并將其應(yīng)用到JRE和JDK。

定期檢查Oracle主頁上的安全警報(bào),以確保知道可用的重要補(bǔ)丁程序。每個(gè)季度,Oracle都會(huì)為Java的當(dāng)前LTS(長期支持)版本提供一個(gè)自動(dòng)補(bǔ)丁更新。問題是,只有在購買Java支持許可證的情況下,該補(bǔ)丁才可用。

小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)初中級(jí)Java工程師,想要提升技能,往往是自己摸索成長,但自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年最新Java開發(fā)全套學(xué)習(xí)資料》送給大家,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。
開發(fā)安全Java應(yīng)用程序的13條規(guī)則((Mark),2024年程序員面試,安全,java,開發(fā)語言
開發(fā)安全Java應(yīng)用程序的13條規(guī)則((Mark),2024年程序員面試,安全,java,開發(fā)語言
開發(fā)安全Java應(yīng)用程序的13條規(guī)則((Mark),2024年程序員面試,安全,java,開發(fā)語言

由于文件比較大,這里只是將部分目錄截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻

如果你覺得這些內(nèi)容對(duì)你有幫助,可以添加下面V無償領(lǐng)?。。▊渥ava)
開發(fā)安全Java應(yīng)用程序的13條規(guī)則((Mark),2024年程序員面試,安全,java,開發(fā)語言

最后

現(xiàn)在正是金三銀四的春招高潮,前陣子小編一直在搭建自己的網(wǎng)站,并整理了全套的**【一線互聯(lián)網(wǎng)大廠Java核心面試題庫+解析】:包括Java基礎(chǔ)、異常、集合、并發(fā)編程、JVM、Spring全家桶、MyBatis、Redis、數(shù)據(jù)庫、中間件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**

開發(fā)安全Java應(yīng)用程序的13條規(guī)則((Mark),2024年程序員面試,安全,java,開發(fā)語言

件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**

[外鏈圖片轉(zhuǎn)存中…(img-eu8vTeiO-1710420916915)]

本文已被CODING開源項(xiàng)目:【一線大廠Java面試題解析+核心總結(jié)學(xué)習(xí)筆記+最新講解視頻+實(shí)戰(zhàn)項(xiàng)目源碼】收錄文章來源地址http://www.zghlxwxcb.cn/news/detail-851081.html

到了這里,關(guān)于開發(fā)安全Java應(yīng)用程序的13條規(guī)則((Mark)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【容器化應(yīng)用程序設(shè)計(jì)和開發(fā)】2.5 容器化應(yīng)用程序的安全性和合規(guī)性考慮

    【容器化應(yīng)用程序設(shè)計(jì)和開發(fā)】2.5 容器化應(yīng)用程序的安全性和合規(guī)性考慮

    往期回顧: 第一章:【云原生概念和技術(shù)】 第二章:2.1 容器化基礎(chǔ)知識(shí)和Docker容器 第二章:2.2 Dockerfile 的編寫和最佳實(shí)踐 第二章:2.3 容器編排和Kubernetes調(diào)度 第二章:2.4 容器網(wǎng)絡(luò)和存儲(chǔ) 容器化應(yīng)用程序是將應(yīng)用程序和其依賴項(xiàng)打包到一個(gè)獨(dú)立的、可移植的容器中,以便在

    2024年02月15日
    瀏覽(22)
  • Java應(yīng)用程序被安全阻止的解決方法

    在編寫和運(yùn)行Java應(yīng)用程序時(shí),有時(shí)候可能會(huì)遇到Java安全阻止的問題。這是因?yàn)镴ava具有安全特性,旨在保護(hù)用戶免受潛在的惡意代碼攻擊。當(dāng)Java檢測(cè)到潛在的安全風(fēng)險(xiǎn)時(shí),它會(huì)阻止應(yīng)用程序的執(zhí)行。本文將介紹一些常見的Java安全阻止問題以及解決方法。 問題1:Java應(yīng)用程序

    2024年02月04日
    瀏覽(25)
  • STRIDE 威脅建模:面向安全應(yīng)用程序開發(fā)的威脅分析框架

    STRIDE 威脅建模:面向安全應(yīng)用程序開發(fā)的威脅分析框架

    STRIDE 威脅模型由Microsoft 安全研究人員于 1999 年創(chuàng)建,是一種以 開發(fā)人員 為中心的威脅建模方法,通過此方法可 識(shí)別可能影響應(yīng)用程序的威脅、攻擊、漏洞,進(jìn)而設(shè)計(jì)對(duì)應(yīng)的緩解對(duì)策,以降低安全風(fēng)險(xiǎn)并滿足公司的安全目標(biāo)。 STRIDE為每一種威脅英文的首寫字母,?????

    2024年02月05日
    瀏覽(30)
  • 【遇到的問題】JAVA應(yīng)用程序處于安全原因被阻止。

    【遇到的問題】JAVA應(yīng)用程序處于安全原因被阻止。

    直入正題,遠(yuǎn)程服務(wù)器用JAVA連接KVM報(bào)以下錯(cuò)(如圖)。 應(yīng)用程序處于安全原因被阻止 無法驗(yàn)證證書 將不執(zhí)行該應(yīng)用程序 名稱:Java viewer 發(fā)行者:ATEN 位置:https://192.168.210:443 通過網(wǎng)上查閱資料以及官網(wǎng)查看,發(fā)現(xiàn)應(yīng)該是與JRE版本有關(guān)系,導(dǎo)致證書出問題。(具體原因樓主還在

    2024年02月15日
    瀏覽(22)
  • 應(yīng)用程序已被Java 安全阻止-- 如何全局設(shè)置Java 控制面板參數(shù)

    應(yīng)用程序已被Java 安全阻止-- 如何全局設(shè)置Java 控制面板參數(shù)

    最近遇到一個(gè)客戶問題,客戶方存在一個(gè)使用場(chǎng)景為使用IE訪問一個(gè)頁面 之后通過點(diǎn)擊頁面的按鈕調(diào)起一個(gè)applet程序,結(jié)果遇到了一個(gè)彈窗告警:應(yīng)用程序已被Java安全阻止。 對(duì)于這個(gè)問題 解決方案有兩個(gè): 1.將訪問的頁面站點(diǎn)加入到例外站點(diǎn)中。 2.修改Java控制面板中參數(shù),

    2024年02月04日
    瀏覽(28)
  • RK3568平臺(tái)開發(fā)系列講解(Linux系統(tǒng)篇)Linux 應(yīng)用程序的安全

    RK3568平臺(tái)開發(fā)系列講解(Linux系統(tǒng)篇)Linux 應(yīng)用程序的安全

    ??返回專欄總目錄 沉淀、分享、成長,讓自己和他人都能有所收獲!?? ??本篇讓我們?nèi)绾螌懗霰M可能安全的應(yīng)用程序。

    2023年04月16日
    瀏覽(93)
  • 構(gòu)建安全高效的Web應(yīng)用程序:IntelliJ IDEA的后端開發(fā)指南

    在當(dāng)今互聯(lián)網(wǎng)時(shí)代,Web應(yīng)用項(xiàng)目的開發(fā)變得越來越重要。為了提供更好的用戶體驗(yàn)和良好的系統(tǒng)可擴(kuò)展性,采用前后端分離的設(shè)計(jì)模式已成為眾多開發(fā)團(tuán)隊(duì)的首選。 前后端分離是一種軟件架構(gòu)模式,將傳統(tǒng)的單體應(yīng)用中的前端和后端部分進(jìn)行解耦,使其成為獨(dú)立的兩個(gè)部分。

    2024年02月03日
    瀏覽(48)
  • WebSphere是IBM開發(fā)的一套企業(yè)級(jí)應(yīng)用服務(wù)器軟件,提供了強(qiáng)大的安全功能,以保護(hù)企業(yè)應(yīng)用程序的安全性和機(jī)密性

    WebSphere是IBM開發(fā)的一套企業(yè)級(jí)應(yīng)用服務(wù)器軟件,提供了強(qiáng)大的安全功能,以保護(hù)企業(yè)應(yīng)用程序的安全性和機(jī)密性

    WebSphere是IBM開發(fā)的一套企業(yè)級(jí)應(yīng)用服務(wù)器軟件,提供了強(qiáng)大的安全功能,以保護(hù)企業(yè)應(yīng)用程序的安全性和機(jī)密性。下面是WebSphere提供的一些主要安全功能的介紹: 身份驗(yàn)證(Authentication):WebSphere支持多種身份驗(yàn)證機(jī)制,包括基于用戶名和密碼的認(rèn)證、基于數(shù)字證書的認(rèn)證、

    2024年03月11日
    瀏覽(22)
  • 【Java應(yīng)用程序開發(fā)】【期末復(fù)習(xí)題】【2022秋】【答案僅供參考】

    【Java應(yīng)用程序開發(fā)】【期末復(fù)習(xí)題】【2022秋】【答案僅供參考】

    答題時(shí)長:90分鐘 試卷共包含57道題目,其中單選題30道,多選題10道,判斷題10道,簡(jiǎn)答題5道,程序題2道。 1.定義一個(gè)類,必須使用的是( ) A.public B.class C.interface D.static 2.抽象方法:( ) A.可以有方法體 B.不可以出現(xiàn)在非抽象類中 C.有方法體的方法 D.抽象類中的方法都是抽

    2024年02月11日
    瀏覽(30)
  • 高通Android 12/13 默認(rèn)應(yīng)用程序授予權(quán)限

    1、一提到權(quán)限很多Android開發(fā)者都會(huì)想到 比如撥打電話 讀取手機(jī)通訊錄 定位 這些都是需要申請(qǐng)權(quán)限,Google Android 6.0之后(sdk 23) 需要app動(dòng)態(tài)申請(qǐng)權(quán)限 或者權(quán)限組 2、我這里打個(gè)比方 比如需要在fm應(yīng)用 默認(rèn)打開mic權(quán)限? 3、我們需要知道這個(gè)默認(rèn)應(yīng)用程序的包名 (例如 xxx.

    2024年02月01日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包