вторник, 22 февраля 2011 г.

Rails 3 vs Rails 2. Защита от XSS атак

В отличии от Rails 2, где для защиты от XSS атак нужно было явно экранировать переменные в шаблонах с помощью h() метода, в Rails 3 наоборотавтоматически, всегда включен режим экранирования. Если необходимо явным образом отключить экранирование - используется функция raw.

Для того чтобы явно проверить/установить строке атрибут "безопасна", используются соответственно методы html_safe? и html_safe. Но в таком случае, обязательно следите сами за данными пришедшими с форм (тут уже используем h() ). Такие инструменты могут понадобится при создании методов хелперов.

Rails 2:
<%=h @title %>
Rails 3:
<%=@title %>
<%=raw @title %>

четверг, 17 февраля 2011 г.

Silverstripe ошибка: Uncaught Exception: Object->__call(): the method 'getdestdir' does not exist on 'Page'

Если в Silverstripe, после попытки генерировать кеш (http://mysite.com/dev/buildcache/) возникает ошибка:
Error at sapphire/core/Object.php line 724: Uncaught Exception: Object->__call(): the method 'getdestdir' does not exist on 'Page'


Значит добавить строку в /mysite/_config.php, которая включит механизм кеширования на сайте:

Object::add_extension("SiteTree", "FilesystemPublisher('assets/cache/', 'html')");

Я предпочитаю размещать кеш-файлы в папке assets

вторник, 8 февраля 2011 г.

Установка Google Chrome под Ubuntu

Только недавно узнал для себя, что можно установить под Ubuntu браузер Google Chrome. Что позволяет под linux (в какой-то мере) тестировать WebKit (Safari именно на нем)

sudo apt-get install chromium-browser


пятница, 4 февраля 2011 г.

Ruby on Rails модуль исключили из NetBeans IDE 7.0

В новой версии NetBeans IDE 7.0, больше не будет поддерживаться Ruby on Rails модуль, точнее его просто выбросили... Так сообщает официальный сайт NetBeans. 

Придется переходить на альтернативные IDE либо юзать старые версии NetBeans < 7.0

Из платных IDE хвалят RubyMine (корпортаивная лицензия $150, персональная $29 + $49 за обновления), перечитав список бесплатных - то уж лучше старый NetBeans юзать чем кривую Аптану и ей же подобные...

вторник, 1 февраля 2011 г.

Добавить обязательный слеш в конце URL с помощью htaccess

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Последняя строка осуществляет переход со страницы без замыкающего слеша на страницу со слешем. Данный трюк важен для SEO, чтобы рейтинг страницы не расщеплялся на две страницы: со слешем и без него






P.S. Для nginx:
Добавить слеш если нету: rewrite ^(.*[^/])$ $1/ permanent;
Как убрать все двойные слеши (nginx)