2011-07-23 32 views
3

我並不依賴於此作爲安全性的主要層,甚至不依賴於我自己舒服的一個,但它只是混淆事情工作方式的另一層。在grails中加密查詢字符串參數

我想知道是否有東西已經建成,這將允許我在grails中加密查詢字符串參數?寫一些東西來做到這一點很容易,但只是尋找可能已經可用的任何東西。

像...

<g:link controller="pony" action="ride" params="[thing:thingInstance.id.encrypt()]" />Go</g:link> 

用戶看到的..\pony\ride\MaybeSomeMD5EncodedStringHere代替..\pony\ride\1

class PonyController{ 

    @Secured(['ROLE_AUTH_USER']) 
    def ride ={ 
     //additional security checks handled by Spring Security Core 
     def thing = Thing.get(thingInstance.id.dencrypt()); 
    } 

} 
+3

您是在嘗試對事物進行加密?那些可能正在窺探用戶的人? (如果是這樣,我只是使用https,GET參數被加密然後)你擔心用戶看到的參數,只是想混淆它們?如果用戶知道密鑰是「丁東......」,他們知道它是「1」,他們有什麼不同? –

+0

只是想混淆它們以獲得更安全的查詢字符串。 「DingDong」只是一個可能的md5加密字符串的例子。 –

+0

問題更新... –

回答

3

您的用戶不應該能夠通過改變所提出的要求,以造成傷害。您的應用程序應該根據權限和角色來確保每個請求的安全,而不僅僅是確保不顯示鏈接/ Users/delete/1。該控制器應該實際上檢查您的許可,無論如何,這樣做

無論如何,我沒有任何插件可以幫助我們對URL進行模糊處理,這可能是因爲它很容易推出自己的插件。只要編輯您的URLMappings:

http://www.grails.org/doc/latest/ref/Plug-ins/URL%20mappings.html

,做類似的東西轉化爲Base64編碼,這可能會混淆這就夠了。

encoded = s.bytes.encodeBase64().toString() 

請記住,這是不是安全的一種固體形式,因此,如果您需要,這是你的行動計劃,你這樣做是錯誤的。

;)

+0

感謝您的輸入。我更新了我的問題,更好地表達了我的意圖。 –

+0

@Nate我有同樣的情況,你能否澄清更多的答案? –

+0

我如何編輯映射文件來添加哈希(加密/描述)機制 –