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

java開發(fā)安全之:Password Management: Hardcoded Password

這篇具有很好參考價值的文章主要介紹了java開發(fā)安全之:Password Management: Hardcoded Password。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Overview

Hardcoded password 可能會削弱系統(tǒng)安全性,一旦出現(xiàn)安全問題將無法輕易修正。

Details

使用硬編碼方式處理密碼絕非好方法。這不僅是因為所有項目開發(fā)人員都可以使用通過硬編碼方式處理的密碼,而且還會使解決這一問題變得極其困難。在代碼投入使用之后,除非對軟件進行修補,否則將無法更改密碼。如果受密碼保護的帳戶遭受入侵,系統(tǒng)所有者將必須在安全性和可用性之間做出選擇。 在這種情況下,?getConnection() 的調(diào)用中發(fā)現(xiàn) Hardcoded Password。

例 1:以下代碼用 hardcoded password 來連接數(shù)據(jù)庫:

DriverManager.getConnection(url, "scott", "tiger");

該代碼可以正常運行,但是有權(quán)訪問該代碼的任何人都能得到這個密碼。一旦程序發(fā)布,除非修補該程序,否則可能無法更改數(shù)據(jù)庫用戶“scott”和密碼“tiger”。雇員可以利用手中掌握的信息訪問權(quán)限入侵系統(tǒng)。

更糟的是,如果攻擊者能夠訪問應用程序的字節(jié)代碼,那么他們就可以利用 javap -c 命令訪問已經(jīng)過反匯編的代碼,而這些代碼中恰恰包含用戶使用過的密碼值。此操作的結(jié)果可能類似于

Example 1 的以下內(nèi)容:

javap -c ConnMngr.class 22: ldc #36; //String 
jdbc:mysql://ixne.com/rxsql 24: ldc #38; //String scott 26: ldc #17; //String tiger

在移動環(huán)境中,由于設備丟失的幾率較高,所以 password management 非常重要。

示例 2:以下代碼會使用硬編碼的用戶名和密碼設置用于通過 Android WebView 查看受保護頁面的身份驗證。 ...

webview.setWebViewClient(new WebViewClient() 
{ 
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) {
 handler.proceed("guest", "allow"); 
} 
}
); 

... 與Example 1 類似,該代碼可以正常運行,但是有權(quán)訪問此代碼的任何人都可以獲得此密碼。

Recommendations

絕不能對密碼進行硬編碼。通常情況下,應對密碼進行模糊處理,并在外部資源文件中進行管理。在系統(tǒng)中的任何位置采用明文的形式存儲密碼,會造成任何有足夠權(quán)限的人均可讀取和無意中誤用密碼。至少,要對密碼進行散列處理后再存儲。 一些第三方產(chǎn)品聲稱可以安全地管理密碼。例如,WebSphere Application Server 4.x 用簡單的異或加密算法加密數(shù)值,但是請不要對諸如此類的加密方式給予完全的信任。

WebSphere 以及其他一些應用服務器通常都只提供過期的且相對較弱的加密機制,這對于對安全性要求較高的環(huán)境來說是遠遠不夠的。目前,最佳的安全且通用的解決方法是創(chuàng)建自己的專有機制。 對于 Android 以及其他任何使用 SQLite 數(shù)據(jù)庫的平臺來說,SQLCipher 是一個不錯的備選方案。SQLCipher 是對 SQLite 數(shù)據(jù)庫的擴展,為數(shù)據(jù)庫文件提供了透明的 256 位 AES 加密。因此,憑證可以存儲在加密的數(shù)據(jù)庫中。

示例 3:以下代碼演示了如何在下載必要的二進制文件后將 SQLCipher 集成到 Android 應用程序中,并將憑據(jù)存儲到數(shù)據(jù)庫文件中。

import net.sqlcipher.database.SQLiteDatabase; 
 SQLiteDatabase.loadLibs(this); 
File dbFile = getDatabasePath("credentials.db"); 
dbFile.mkdirs(); 
dbFile.delete(); 
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbFile, "credentials", null); db.execSQL("create table credentials(u, p)"); 
db.execSQL("insert into credentials(u, p) values(?, ?)", new Object[]{username, password}); 

... 請注意,對 android.database.sqlite.SQLiteDatabase 的引用可以使用 net.sqlcipher.database.SQLiteDatabase 代替。 要在 WebView 存儲器上啟用加密,必須使用 sqlcipher.so 庫重新編譯 WebKit。文章來源地址http://www.zghlxwxcb.cn/news/detail-812411.html

到了這里,關于java開發(fā)安全之:Password Management: Hardcoded Password的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 【開發(fā)環(huán)境】下載、安裝 SQL Server Management Studio ( 下載 SSMS | 安裝 SSMS | 連接遠程數(shù)據(jù)庫 )

    【開發(fā)環(huán)境】下載、安裝 SQL Server Management Studio ( 下載 SSMS | 安裝 SSMS | 連接遠程數(shù)據(jù)庫 )

    SQL Server Management Studio 簡稱 SSMS , 本文中為了方便使用 SSMS 簡稱 ; 進入到 什么是 SQL Server Management Studio (SSMS)? 介紹頁面 : https://learn.microsoft.com/zh-cn/sql/ssms/sql-server-management-studio-ssms 在該頁面中 , 對 SSMS 進行了簡要的介紹 , 點擊下圖中的 下載 SQL Server Management Studio (SSMS) 選項 ,

    2024年02月05日
    瀏覽(115)
  • Linux Mii management/mdio子系統(tǒng)分析之三 mii_bus注冊、注銷及其驅(qū)動開發(fā)流程

    Linux Mii management/mdio子系統(tǒng)分析之三 mii_bus注冊、注銷及其驅(qū)動開發(fā)流程

    (轉(zhuǎn)載)原文鏈接:https://blog.csdn.net/u014044624/article/details/123303174 ????? 本篇是mii management/mdio模塊分析的第三篇文章,本章我們主要介紹mii-bus的注冊與注銷接口。在前面的介紹中也已經(jīng)說過,我們可以將mii-bus理解為mdio總線的控制器的抽象,就像spi-master、i2c-adapter一樣。 本

    2024年01月16日
    瀏覽(39)
  • 開發(fā)語言漫談-Java

    ? ? ? ? 由于C++過于復雜,Java誕生了。與C++相比,Java更易于學習和使用,它去掉C++中的指針和解決了內(nèi)存管理問題。Java提供了垃圾自動回收機制,自動管理不再使用的內(nèi)存。Python又進一步簡化,使得語法更簡潔,更易于閱讀和編寫。當然隨著簡化,性能就越來越低。 ? ?

    2024年04月10日
    瀏覽(25)
  • 阿里Java開發(fā)手冊~安全規(guī)約

    1. 【強制】隸屬于用戶個人的頁面或者功能必須進行權(quán)限控制校驗。 說明: 防止沒有做水平權(quán)限校驗就可隨意訪問、修改、刪除別人的數(shù)據(jù),比如查看他人的私信 內(nèi)容、修改他人的訂單。 2. 【強制】用戶敏感數(shù)據(jù)禁止直接展示,必須對展示數(shù)據(jù)進行脫敏。 說明: 查看個人

    2024年02月15日
    瀏覽(40)
  • JAVA開發(fā)(從安全角度學習)

    JAVA開發(fā)(從安全角度學習)

    ?web.xml(第二種配置路由的方式) 使用預編譯寫法可以有效防止sql注入。 Filter 被稱為過濾器,過濾器實際上就是對 Web 資源進行攔截,做一些處理后再交給下一個過濾器或 Servlet 處理,通常都是用來攔截request進行處理的,也可以對返回的?response進行攔截處理。開發(fā)人員利用

    2024年03月18日
    瀏覽(14)
  • Java安全 URLDNS鏈分析,網(wǎng)絡安全開發(fā)面試基礎

    Java安全 URLDNS鏈分析,網(wǎng)絡安全開發(fā)面試基礎

    this代表的是當前對象的指針,也可以用 this.name 的方式調(diào)用當前對象中的成員 那我們?nèi)?URLStreamHandler類 當中,查看下 hashCode方法 的代碼 protected int hashCode(URL u) { int h = 0; // Generate the protocol part. String protocol = u.getProtocol(); if (protocol != null) h += protocol.hashCode(); // Generate the host pa

    2024年04月23日
    瀏覽(20)
  • 第七十七篇:車輛安全-車載軟件C++語言開發(fā)指南(AUTOSAR C++)

    C++是面向?qū)ο蟮木幊?,比C語言更加復雜,抽象程度高,但C++在一些圖像處理、系統(tǒng)、控件的編程方面,實用性更強,具有自己的編程優(yōu)勢。在車載嵌入式系統(tǒng)的開發(fā)中,C和C++都具有重要的作用。C++語言所使用的面向?qū)ο蟮木幊碳夹g(shù)如封裝、繼承和多態(tài)性極大的提高了在大規(guī)

    2024年02月04日
    瀏覽(164)
  • 網(wǎng)絡安全|滲透測試入門學習,從零基礎入門到精通—滲透中的開發(fā)語言

    網(wǎng)絡安全|滲透測試入門學習,從零基礎入門到精通—滲透中的開發(fā)語言

    目錄 前面的話 開發(fā)語言 1、html 解析 2、JavaScript 用法 3、JAVA ? 特性 4、PHP 作用 PHP 能做什么? 5、C/C++ 使用 如何學習 關于在滲透中需要學習的語言第一點個人認為就是可以打一下HTML,JS那些基礎知識,磨刀不誤砍柴工。其次,了解基本的代碼后,就可以去學習相關的漏洞知

    2024年02月09日
    瀏覽(20)
  • 碼出高效:Java開發(fā)手冊筆記(線程安全)

    碼出高效:Java開發(fā)手冊筆記(線程安全)

    ????并發(fā)與并行的目標都是盡可能快地執(zhí)行完所有任務。以醫(yī)生坐診為例,某個科室有兩個專家同時出診,這就是兩個并行任務,其中一個醫(yī)生,時而問診,時而查看化驗單,然后繼續(xù)問診,突然又中斷去處理病人的咨詢,這就是并發(fā)。在并發(fā)環(huán)境下,由于程序的封閉性全

    2024年02月08日
    瀏覽(18)
  • 瑞_Java開發(fā)手冊_(四)安全規(guī)約

    瑞_Java開發(fā)手冊_(四)安全規(guī)約

    ??前言:本文章為瑞_系列專欄之《Java開發(fā)手冊》的安全規(guī)約篇。由于博主是從阿里的《Java開發(fā)手冊》學習到Java的編程規(guī)約,所以本系列專欄主要以這本書進行講解和拓展,有需要的小伙伴可以點擊鏈接下載。本文僅供大家交流、學習及研究使用,禁止用于商業(yè)用途,違者

    2024年01月17日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包