0
在C#或Java中,即使我們將方法標記爲私有方法,仍然可以使用反射或動態加載類來訪問它們。當然,我們必須知道方法的名稱才能掌握它 - 但我仍然想知道應用程序的安全性是否足以保護私有數據庫,銀行帳戶等,這些應用程序仍然可以使用反射進行黑客入侵。 我的問題在於,爲什麼Java Reflection API允許訪問變量/方法,即使它們是私有的?私有方法可訪問
在C#或Java中,即使我們將方法標記爲私有方法,仍然可以使用反射或動態加載類來訪問它們。當然,我們必須知道方法的名稱才能掌握它 - 但我仍然想知道應用程序的安全性是否足以保護私有數據庫,銀行帳戶等,這些應用程序仍然可以使用反射進行黑客入侵。 我的問題在於,爲什麼Java Reflection API允許訪問變量/方法,即使它們是私有的?私有方法可訪問
即使反射不存在,從一個虛擬機內獲取數據對於一個確定的黑客來說是相當微不足道的。反思的存在是這些語言的創造者認可的:a)在某些特殊情況下它非常方便; b)私人方法決不能保證安全。相反,爲了保護諸如銀行賬戶信息之類的私人數據,應該使用間接的間接方式,例如將數據存儲在遠程數據庫中,併爲查詢機制提供積極的ACL。
ysimonson 感謝您的信息。 – Ravisha 2010-01-29 13:43:37