CallerSensitive學習筆記

2021-10-19 13:32:05 字數 625 閱讀 3725

解釋

這個註解是為了堵住漏洞用的。曾經有黑客通過構造雙重反射來提公升許可權,原理是當時反射只檢查固定深度的呼叫者的類,看它有沒有特權,例如固定看兩層的呼叫者(getcallerclass(2))。如果我的類本來沒足夠許可權群訪問某些資訊,那我就可以通過雙重反射去達到目的:反射相關的類是有很高許可權的,而在 我->反射1->反射2 這樣的呼叫鏈上,反射2檢查許可權時看到的是反射1的類,這就被欺騙了,導致安全漏洞。使用callersensitive後,getcallerclass不再用固定深度去尋找actual caller(「我」),而是把所有跟反射相關的介面方法都標註上callersensitive,搜尋時凡看到該註解都直接跳過,這樣就有效解決了前面舉例的問題

作用

reflection.getcallerclass()加了@callersensitive註解後,能夠跟蹤到最初的呼叫者。例如 method-1 -> method-2 -> method-3 -> method-4 -> reflection.getcallerclass,最終返回的是method-1

@callersensitive能夠堵住反射的漏洞,當你嘗試用反射呼叫reflection.getcallerclass(),結果會丟擲異常

C Primer Chapter One學習筆記

筆記 1.流 從io裝置上讀入或寫出的字串行,用來說明字元隨時間順序生成或消耗。2.輸入輸出符可連用原因 operator 或operator 返回stream物件。3.要測試程式那個語句出錯,使用cout 4.新建乙個內建型別,如int i 0 最好先初始化,不然用到的時候沒初始化會產生奇怪的錯誤...

BroadcastReceiver學習筆記

需要注意 的是,不要在 onreceive 方法中新增過多的邏輯或者進行任何的耗時操作,因為在廣播接收 器中是不允許開啟執行緒的,當 onreceive 方法執行了較長時間而沒有結束時,程式就會報錯。有序broadcast,sendorderedbroadcast intent,null abort...

CDISC SDTM SE domain 學習筆記

整理翻譯自 sdtm ig 3.2 www.cdisc.org sdtm se subject elements 鞏固每個subject的epochs和elements的起止時間點.se對於有多個 時期的試驗有著重要的用處 如crossover試驗 se包含乙個subject從乙個element進入...