Статьи

Шифрование с изюминкой

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

Но все это изменилось! Ребята (и девушка) из нашей команды дизайнеров — первоклассные, и благодаря им я укрепляю свои навыки и подбираю новые приемы здесь и там.

Один из этих приемов включает функции cfusion_encrypt () и cfusion_decrypt (). Эти две функции недокументированы и могут быть недоступны пользователям в планах общего хостинга, поскольку они являются частью бэкэнда и управления ColdFusion. Таким образом, вы предупреждены о том, что нужно тестировать, прежде чем спешить и развернуть его в производственной среде.

Причина, по которой функции cfusion_encrypt () и cfusion_decrypt () уникальны и отличаются от документированных функций encrypt () и decrypt (), заключается в том, что результирующая зашифрованная строка будет содержать только буквы и цифры. Поэтому он идеально подходит для URL-адресов и вставки данных в базу данных, но не для паролей или другой более важной информации.

Поэтому сделайте себе одолжение и не используйте эти функции для действительно важных данных, таких как пароли или личная информация. НО они отлично подходят для шифрования ваших строк URL, тем самым скрывая ваши переменные и, возможно, предотвращая атаку SQL-инъекцией на ваш сайт.

Для этого просто следуйте этой части кода.

Сначала вам нужно зашифровать строку URL следующим образом:

Приведенный выше код возьмет «show = userData & secretid = # secretid # & userid = # userID #» и зашифрует его в строку, удобную для URL. Часть «MyPassw0rd» этой функции является ключом для блокировки и разблокировки этой строки. Без этого ключа я не могу разблокировать зашифрованную строку, и никто другой не может.

Теперь, когда пользователь нажимает на эту ссылку, его URL должен выглядеть примерно так:

http://www.example.com/index.cfml?pass=JLASW5UTHOUHIUGL9STIASLAV4ECLA91ATR6EMLAJLE37UQIET9AMLE6IEM9AGOE

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

Для этого мы используем следующий бит кода:



a :: #listFirst (thisVar, ‘=’) # = #listLast (thisVar, ‘=’) #

Приведенный выше код сначала устанавливает нашу расшифрованную строку в переменную «thisURLString». Затем мы зацикливаемся на этой строке, после того, как она была расшифрована, мы сбрасываем переменные как локальные переменные на нашей странице. Вы можете установить их для любой переменной области видимости, например, URL, SESSION или даже APPLICATION.

Идея здесь состоит в том, чтобы использовать это не для 100% -ной безопасности приложений, а скорее как препятствие для людей, чтобы преодолеть и, возможно, предотвратить атаки SQL-инъекций. Это также отличный способ скрыть внутреннюю работу вашего сайта.

Наслаждайтесь, и если у вас есть крутой трюк, обязательно опубликуйте его на форумах ColdFusion здесь, на SitePoint.com