Февраль 22, 2006
Wordpress: проблема с реферерами
Вчера столкнулся с “вредной” фичей Wordpress, из-за которой пришлось немножко подправить его скрипты. Возможно, мой опыт будет полезен тем, кто столкнулся с ошибкой:
Sorry, you need to enable sending referrers
for this feature to work.
Надпись может появляться при выполнении действий, требующих прав администратора блога. Я уперся лбом в эту строчку, пытаясь добавить нового автора.
Дело в том, что создатели Wordpress весьма серьезно пекутся о безопасности, что не может не радовать. С другой стороны, каждый ход против хакеров с высокой долей вероятности бьет и по нам, пушистым пользователям.
У браузеров есть фича – возможность передачи информации о том, откуда пришел посетитель на страничку, так называемый реферер (referer). Эту возможность и эксплуатируют авторы движка, повышая защищенность панели управления.
Для того, чтобы узнать, как настроить параметры передачи рефереров для конкретного браузера, загляните на эту страничку Кодекса WordPress. Вероятно, что следуя приведенным там рекомендациям, вам удастся справиться с описанной выше напастью. Если не получилось – продолжайте чтение.
Cам факт передачи рефереров является угрозой вашей приватности, поэтому многие умные файрволлы просто-напросто блокируют их передачу. Например, именно так с реферами поступает комплекс Norton Internet Security. Впрочем, проблема решается весьма просто одним из двух способов: грубым разрешением передачи ваших приватных данных, или более красивым занесением конкретного сайта в “доверенную зону”.
В моем случае дело обстоит сложнее. Я не могу определить источник проблемы – антивирус, файроволл, или настройки хостера. Поэтому пришлось идти на крайние меры – отключать проверку рефереров путем хирургического вмешательства в тело WordPress.
Сразу оговорюсь, что все нижесказанное относится к новой версии движка, двойке. Для более старых версий нужно вносить иные коррективы в код скриптов.
Перейдем к делу. Найдите файл pluggable-functions.php в директории wp-includes. В нем находится следующий код:
if ( !function_exists('check_admin_referer') ) :
function check_admin_referer() {
$adminurl = strtolower(get_settings('siteurl')).'/wp-admin';
$referer = strtolower($_SERVER['HTTP_REFERER']);
if (!strstr($referer, $adminurl))
die(__('Sorry, you need to enable sending referrers for this feature to work.'));
do_action('check_admin_referer');
}
endif;
Просто закомментируйте две строки:
// if (!strstr($referer, $adminurl))
// die(__('Sorry, you need to enable sending referrers for this feature to work.'));
Все, можно работать. Учтите, что внеся эти изменения, вы частично уменьшили безопасность вашего блога от вторжения хакеров!

Июль 4, 2006 - 10:01 -
Конфуций говорил: «Я слышу и забываю. Я вижу и помню. Я переживаю и понимаю»
То что умные учатся на ошибках других, а лишь дураки на собственных – одно из самых больших заблуждений, которыми я следовал в своей жизни. Это лишь заставляло меня саомоуничижаться и терять собственную позитивную самооценку после периодических ошибок и провалов. На самом то деле человечество эгоистично по природе своей – оно не способно учится не только на чужих ошибках, но что еще более не приятно – даже на своих собственных.
Напоследок выражение Себастьяна Шамфора на предмет: “Одно из великих несчастий человека состоит в том, что порою его достоинства не идут ему впрок, а исскуство управлять и разумно пользоваться ими дается лишь опытом, зачастую запоздалым”
Июль 4, 2006 - 12:07 -
Шикарный комментарий! Я рад, что не один сомневаюсь в теории обучения на чужих ошибках
Июль 20, 2006 - 19:19 -
Еще один довольно интересный пост по этой же теме:
http://onstartups.com/Home/tabid/3339/articleType/ArticleView/articleId/729/StartupsAreYouMakingEnoughMistakes.aspx
Июль 24, 2006 - 18:47 -
“То что умные учатся на ошибках других, а лишь дураки на собственных” – миф, придуманный так называемыми созерцателями. Это существующая еще с древних времен прослойка людей (точнее совокупность прослоек), которые видят особую гордость и почет в НЕПРИЧАСТНОСТИ к тем или иным сферам – временных), “рафинированные интеллигенты”, “чистые специалисты” и прочие “профессионалы”, особенно почему-то в сфере умственного труда. Своего рода “мудрецы”, которые палец о палец ударить не могут.
Август 4, 2006 - 22:56 -
Если ребенок ужалился крапивой или подвергся нападению осы, он кричит от боли. На “взрослом” языке этот вопль означает “быстрее бегите ко мне и спасите” (для родителей) и одновременно “не ходите сюда, здесь опасно” (для всех остальных), на “совсем взрослом” языке это означает “я только что сделал ошибку, анализирую её (вырабатываю условный рефлекс “не лезь в осиное гнездо”), и вам рекомендую прислушаться и приглядеться”. Тем, кто уже сам бывал ужален, может быть и нужно игнорировать, а [другим] маленьким детям и родителям все же стоит заметить эту ошибку.
Если бы все учились только на своих ошибках, то смертность была вы намного выше. Не стоит бояться экспериментов (и ошибок) в новых областях – “либо пан, либо пропал” (либо всё получилось, либо неудачный но ценный опыт, либо герой посмертно). Но если ты прыгнул в кипящее молоко в надежде омолодиться, то окружающие имеют полное право смеяться и приговаривать “этот дядька не читал в детстве сказок”.
Август 21, 2006 - 18:08 -
Анрдей, ты глубоко ошибаешься.
Видимо ты не понимаешь суть современной проблемы,
а именно проблемы, которую описал автор поста.
Ты все еще думаешь басьнями Крылова, которые в
нашем случае уже не работают.