Из под http-сервера у Вас код запускается под одним юзером, а из cron под другим. Можно этот вопрос решить быстро, но коряво. Вместо запуска из cron`а php, выполняйте внешний http-доступ к URL (имитация варианта с запуском из браузера).
Код покажите, пожалуйста.
Что у Вас в $_SESSION['session']? Идентификатор сессии? Свой или встроенный md5/sha-1? Дело в том, что если Вам необходимо использовать сесси при обработке AJAX-обращений, так или иначе, но идентификатор сессии придётся светить. Если Вы просто хотите спрятать идентификатор от пятилетних спецов, можно, например, получать его из печенек непосредственно перед запросом:
function getCookie(name) { var cookie = " " + document.cookie; var search = " " + name + "="; var setStr = null; var offset = 0; var end = 0; if (cookie.length > 0) { offset = cookie.indexOf(search); if (offset != -1) { offset += search.length; end = cookie.indexOf(";", offset) if (end == -1) { end = cookie.length; } setStr = unescape(cookie.substring(offset, end)); } } return setStr; } $(function() { $("#adv").click(function(){ $(function(){ $.post('/job_confirm.php', {session: getCookie('MyCookie'), job_id: "<?=$_GET['id'];?>"}, function(html){$("#adv").html(html); window.setTimeout("window.location='/cabinet/jobs/';", 3000);}, "text"); }); }); });
Разрешать серверу обработку PHP в js-файлах, или генерировать js с помощью PHP без ЯВНОЙ необходимости, не рекомендую.
Вам нравится реализация на templatemonster.com? Так от туда и возьмите. Скачиваем Prototype, скачиваем http://www.templatemonster.com/js/preview_templates.js. У себя делаем:
<script src="путь к Prototype" type="text/javascript"></script> <script src="путь к preview_templates.js" type="text/javascript"></script> <img src="http://mysite.ru/i/small_1.jpg" alt="Маленькая превьюшка" id = "thumb_1" /> <script language="javascript" type="text/javascript"> new TemplatePreview('thumb_1', { title: 'Большая превьюшка', src: 'http://mysite.ru/i/big_1.jpg', width: 400, height: 300}); </script>
В .htaccess:
Redirect 301 /old http://www.site.ru/new/
Дело в том, уважаемый WebAction, что конструкция <?=$_SESSION['session'];?> является вызовом интерпретатора PHP, эквивалентным echo $_SESSION['session'];. В файле с расширением php такой вызов обрабатывается корректно. При подключении же внешнего js-файла, <?=$_SESSION['session'];?> не обрабатывается должным образом (js-файл обычно не ассоциирован с PHP) и представляет собой фактически набор символов.
Необходимо сделать в php-файле:
<script type="text/javascript">var sess = '<?=$_SESSION['session'];?>';</script><script type="text/javascript" src="/engine/js/handler.js"></script>
и использовать в handler.js объявленную переменную sess.
Субъективно, всё в норме. Просто подождите некоторое время.
RedirectMatch 301 ^(.*)$ http://site2.ru/$1
или
RewriteEngine onRewriteRule ^(.*)$ http://site2.ru/$1 [R=301,L]
rtyug, разумеется, проверять необходимо ВСЕ данные, полученные из вне (включая данные из куков).
Вы частично правы относительной безвредности XSS для серверной части системы. Однако, если пользователь, добавляя или изменяя комментарий, напишет нечто вроде "<script type="text/javascript">alert('СВОБОДУ БОРЦАМ ЗА ПРАВА ДОМАШНИХ ТАРАКАНОВ!!!');</script>", данный JS-код будет выполнен в браузере каждого посетителя страницы, содержащей такой комментарий. Как это отразится на репутации ресурса? Следовательно, делаем простой вывод: если предполагается вывод свободного текста, полученного из вне, используем htmlspecialchars().
Экранировать характерные символы необходимо перед использованием их в запросе к БД например. Если Вы возвращаете полученные из формы значения полей при ошибке заполнения, экранирование приведёт к добавлению совершенно ненужных слешей. Упрощённо, можно считать, что перед использованием полученных данных в запросе, необходимо сделать addslashes(), а перед выводом полученных данных в браузер, необходимо сделать htmlspecialchars(). Обратите внимание, что на большинстве хостингов magic_quotes_gpc = On, а начиная с PHP 6 экранирование входящих данных включено всегда.
Если я не ошибаюсь, DLE кеширует рендернутые страницы в /engine/cache. Возможно, изменения станут заметны после удаления кеша. Скиньте в личку ссылку на сайт.