зашифровать параметры строки запроса в Grails - PullRequest
3 голосов
/ 23 июля 2011

Я не зависим от этого как от основного уровня безопасности или даже от того, что мне было бы удобно в одиночку , но это был бы просто еще один слой, чтобы запутать, как все работает.

Мне было интересно, было ли что-то уже построено, что позволило бы мне зашифровать параметры строки запроса в 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());
    }

}

1 Ответ

3 голосов
/ 23 июля 2011

Ваши пользователи не должны быть в состоянии причинить вред, изменив сделанный запрос. Ваше приложение должно выполнять свою работу по защите каждого запроса на основе разрешений и ролей, а не просто следить за тем, чтобы вы не показывали ссылку / Users / delete / 1. Этот контроллер должен на самом деле проверить ваше разрешение на это независимо.

В любом случае, я не знаю каких-либо плагинов для запутывания URL, вероятно, потому что было бы так легко свернуть свой собственный. Просто отредактируйте ваши URLMappings:

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

И сделайте что-то вроде конвертации в Base64, что, вероятно, будет достаточно запутывать это.

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

Помните, что это не надежная форма безопасности, поэтому, если вам это нужно и это ваш план действий, вы делаете это неправильно.

;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...