wdsg

wdsg
Рейтинг
31
Регистрация
09.02.2009

Из под 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 on
RewriteRule ^(.*)$ http://site2.ru/$1 [R=301,L]

rtyug, разумеется, проверять необходимо ВСЕ данные, полученные из вне (включая данные из куков).

нужно ли этот текст экранировать от xss?
в чем тут опасность? зарегистрированный пользвоатель может поставить вредоносный JS и мой сайт будет подключатся к другому сайту и там спамить?? НО js все таки стоит на клиенте работает...?

Вы частично правы относительной безвредности XSS для серверной части системы. Однако, если пользователь, добавляя или изменяя комментарий, напишет нечто вроде "<script type="text/javascript">alert('СВОБОДУ БОРЦАМ ЗА ПРАВА ДОМАШНИХ ТАРАКАНОВ!!!');</script>", данный JS-код будет выполнен в браузере каждого посетителя страницы, содержащей такой комментарий. Как это отразится на репутации ресурса? Следовательно, делаем простой вывод: если предполагается вывод свободного текста, полученного из вне, используем htmlspecialchars().

или нужно ПРОСТО все экранировать что приходит в скрипт от GET POST?

Экранировать характерные символы необходимо перед использованием их в запросе к БД например. Если Вы возвращаете полученные из формы значения полей при ошибке заполнения, экранирование приведёт к добавлению совершенно ненужных слешей. Упрощённо, можно считать, что перед использованием полученных данных в запросе, необходимо сделать addslashes(), а перед выводом полученных данных в браузер, необходимо сделать htmlspecialchars(). Обратите внимание, что на большинстве хостингов magic_quotes_gpc = On, а начиная с PHP 6 экранирование входящих данных включено всегда.

Если я не ошибаюсь, DLE кеширует рендернутые страницы в /engine/cache. Возможно, изменения станут заметны после удаления кеша. Скиньте в личку ссылку на сайт.

Всего: 392