|
|
Без описания |
Поиск в теме | Версия для печати |
|
Отправлено: 19 февраля 2010 — 23:54
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
Провел тестирование. Вернул скрипт как есть. Ткнул ссылки отсюда такие:
http://be.wikipedia.org/wiki/Рака_Бася
и
http://www.pogoda.by/315/mapGidro.html.
Редирект сработал в обоих случаях, но в первом кириллица была "переколбашена", т.е. java-скрипт не отработал.
Потом взял ссылку из подписи профиля на http://fit-media.com. Она не сработала, значит сработал die. Подправил "регулярку", добавил знак "-", т.к. его не было:
CODE:if (!preg_match('#^(http|https|ftp)%3A%2F%2([a-zA-Z0-9\.%\+\-_]+)$#is', urlencode($_SERVER['QUERY_STRING'])))
Редирект заработал.
Следовательно, осталось запустить кириллицу.
(Добавление)
Вообще, надо в регуляроное выражение добавить и другие символы, как минимум "?", "&", "=", "~". ИМХО. |
|
|
yura3d |
Отправлено: 21 февраля 2010 — 19:32
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
altjo пишет:не покатит? ведь нужно избавится только от html-тегов, как я понимаю...
Не совсем, т.к. в некоторых случаях можно сформировать XSS и без управляющих html-символов, например:
CODE:alert(document.cookie)
Конечно в примере выше я не привёл непосредственно то, что называется XSS (чтобы не подавать разного рода школьнегам-"хакерам" пищу для размышлений), но сформировать его можно без проблем
Обновил прикреплённый файл rd.php (обновлённая версия уже работает и на этом форуме, так что проверяйте). Преимущество новой версии - однозначно (согласно документации PHP) определён набор символов, входящих в адрес URL и не подлежащих URL-кодированию. Так что дописывать туда дополнительные символы, как предлагал в своём предыдущем сообщении Zeg, больше не понадобится. Недостаток - убрал поддержку якорей у ссылок, которая была добавлена в предыдущей версии. К сожелению, тут от меня мало что зависело, разработчики браузеров хотели "класть" на стандарты и в результате из трёх протестированных мною браузеров (IE6, Opera 9.52, Firefox 3.0.x) каждый вытворяет с этими якорями всё, что ему заблагорассудится - IE6 обрабатывает их как юникод-строку, Opera 9.52 пытается юникод URL-кодировать, а Firefox юникод-строку интерпретирует только в однобайтной кодировке. И я думаю, в других версиях этих и других браузеров похожая ситуация.
Кому-нибудь поддержка этих якорей вообще нужна? Просто думаю, стоит ли тратить время на выравнивание этих несоответствий между разными браузерами |
|
|
yura3d |
Отправлено: 21 февраля 2010 — 20:49
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
electron пишет:то редирект работает напрямую, без открытия окна предупреждения о переходе по ссылке
Ну разумеется, это же была версия скрипта rd.php для непосредственного редиректа без вывода дополнительной информации. Чтобы выводить дополнительную информацию, скрипт редиректа нужно немного поправить. Вот примерный рабочий вариант:
Спойлер (Отобразить)CODE:<?php
if (!preg_match('#^(http|https|ftp)%3A%2F%2(['.chr(33).'-'.chr(127).']+)$#is', urlencode($_SERVER['QUERY_STRING'])))
die;
?>
<html>
<head>
<title>Переход по внешней ссылке</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
</head>
<body>
<script language="JavaScript" type="text/javascript">
<!--
function redir()
{
document.location.href = '<?php echo urldecode($_SERVER['QUERY_STRING']); ?>';
}
//-->
</script>
<center>Вы собираетесь покинуть форум и перейти по внешней ссылке <b><?php echo htmlspecialchars(urldecode($_SERVER['QUERY_STRING'])); ?></b><br>
Для продолжения кликните <a href="#" onclick="redir();">здесь</a>, если же Вы передумали, то <a href="#" onclick="window.close();">закройте</a> это окно</center>
</body>
</html> |
|
|
yura3d |
Отправлено: 27 февраля 2010 — 14:00
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
robert пишет:Ну работать то новая версия работает, но есть один "косяк", после замены на этот новый rd.php, перестал правильно работать мод Подгрузка прикреплённых изображений на Ajax с "удаленными" изображениями. Они нормально показываются превью, но при увеличении не отображаются.
К сожелению, переадресация на базе JavaScript (которая как раз и используется в последних версиях скрипта редиректа rd.php) с модом динамической подгрузки изображений на Ajax несовместима. Как вариант, возможно создать скрипт редиректа специально для внешних изображений с использованием классической (серверной) переадресации, которая как раз-таки совместима с тем модом.
Для этого откройте файл include/lib.php, найдите строку:
CODE:$_imlink = $fm->out_redir.$imlink;
и замените её строкой:
CODE:$_imlink = 'rd2.php?'.$imlink;
После чего в корневой папке форума разместите прикреплённый файл rd2.php. И не забудьте в файле robots.txt закрыть этот файл от индексации поисковыми системами |
|
|
yura3d |
Отправлено: 27 февраля 2010 — 14:50
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
robert пишет:Спасибо, Юра! Я так понял, то в данном случае нужно использовать и rd.php и rd2.php совместно? Мешать друг другу они не будут?
Да, эти 2 скрипта редиректа использовать нужно совместно. Мешать друг другу они не будут. Просто в этих файлах реализованы 2 разных подхода к переадресации. Наиболее совместимый с разными видами ссылок работает на базе JavaScript (скрипт rd.php), однако, поскольку для мода подгрузки прикреплённых изображений на Ajax метод на базе JavaScript не подходит, для динамической подгрузки внешних изображений добавляется скрипт редиректа с классической (серверной) реализацией переадресации (rd2.php). И, как уже говорил ранее,
yura3d пишет:не забудьте в файле robots.txt закрыть этот файл (rd2.php) от индексации поисковыми системами |
|
|
|
Поиск в теме | Версия для печати |
Страниц (18): В начало « 5 6 7 8 [9] 10 11 12 13 » В конец |
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0) |
« Модификации и дополнения » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
|
|
|