X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> защита ajax файлов, help
LifeUP
LifeUP
Topic Starter сообщение 19.8.2010, 21:54; Ответить: LifeUP
Сообщение #1


интересует какими средствами можно защитить ajax файлы от использования злоумышлинниками?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 20.8.2010, 2:12; Ответить: Letmetouchyou
Сообщение #2


например так

[PHP]<?php
session_start();

$safe_code = $_POST['code']; //_GET

$safe_php = $_POST['php']; // _GET


$pattern='/http\:\/\/((www\.)?[^\/]+)(.+)$/';

preg_match($pattern, $_SERVER['HTTP_REFERER'], $output);

$safe_referer_php = $output[3];

$safe_host = $output[1];


$safe_XHR = $_SERVER['HTTP_X_REQUESTED_WITH'];

if($safe_host != $_SERVER['SERVER_NAME']) {

die(); //TODO : die - redirect to funny page ;]

}


if(empty($safe_php) or $safe_php != $safe_referer_php) {

die();

}

if(empty($safe_XHR) or strtoupper($safe_XHR) != 'XMLHTTPREQUEST'){

die();

}

if(empty($safe_code) or $safe_code != $_SESSION['safe']){

die();

}
?>[/PHP]

а на странице:
[PHP]<?php
session_start();

$_SESSION['safe'] = md5(time().'some_security_word');

?>
<script type='text/javascript'>
var code = "<?=$_SESSION['safe']?>";
var php = window.location.pathname;
</script>
[/PHP]

ну и при передаче данных передавть ети две переменные
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alcorn
Alcorn
сообщение 20.8.2010, 5:18; Ответить: Alcorn
Сообщение #3


(Letmetouchyou @ 20.8.2010, 05:12) *
например так

Ничё не понял, но интересно :rolleyes:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alcorn
Alcorn
сообщение 20.8.2010, 5:30; Ответить: Alcorn
Сообщение #4


(LifeUP @ 20.8.2010, 00:54) *
интересует какими средствами можно защитить ajax файлы от использования злоумышлинниками?


Как понять защитить? А чем вы обычные php-файлы защищаете? Ведь это одно и то же.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 20.8.2010, 13:18; Ответить: Letmetouchyou
Сообщение #5


Alcorn, только тут помоему не польностью универсальна, если на странице, с окторый будет послан запрос бедут гет парамтеры, то проверка не пропустит, но ето все исправимо.
Выложил чем на данный момнет пользуюсь.

а на счет

(Alcorn @ 20.8.2010, 08:18) *
Ничё не понял,


1.
<script type='text/javascript'>
var code = "<?=$_SESSION['safe']?>";
var php = window.location.pathname;
</script>

code - "секртеная" строка в сессии, которая будет разной при каждом обновлении страницы. ( Только тут бока, если страницы сайта в нескольких закладках браузера открыты).
php - назваиние самой страницы, с которой будет послан запрос ( вот тут и бока сгет парамтерами помоему)

2.[PHP]preg_match($pattern, $_SERVER['HTTP_REFERER'], $output);

$safe_referer_php = $output[3];

$safe_host = $output[1];[/PHP]
их массива сервер из http_referere выризаем название домена, откуда ПРИШОЛ запрос, и название страницы откуда пришол запроса.
название домена - долэно быть равно $_SERVER['SERVER_NAME']

если зайти просто на обработчик, то никакого значения в referer не будет, и будет die();

название файла откуда пришол запрос ($safe_referer_php)
должно быть равно переменной яваскрипта -php, которая передаеться в запросе.


3.
[PHP]$safe_XHR = $_SERVER['HTTP_X_REQUESTED_WITH']; [/PHP]
в любом случае должно быть равно XMLHttpRequest - если это аякс запрос

4.
[PHP]if(empty($safe_code) or $safe_code != $_SESSION['safe']){[/PHP]
ну иприверка пременной, которая прислана со страницы с переменной в сессии. Нотут уже бока, о которых я писал выше, но проблема решаема )
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Белый Тигр
Белый Тигр
сообщение 20.8.2010, 16:52; Ответить: Белый Тигр
Сообщение #6


Только аккуратным безопасным кодом. Больше ничем. Если понадобится, злоумышленник просто начнёт имитировать XHR-запрос и будет посылать серверным скриптам всё что захочет.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alcorn
Alcorn
сообщение 20.8.2010, 17:42; Ответить: Alcorn
Сообщение #7


Механизм ясен, но непонятно зачем это всё. Тогда и обычный submit нужно точно так же защищать. В итоге усложнение кода, а есть ли польза?

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44916 19.7.2023, 10:03
автор: qpPeW
Горячая тема (нет новых ответов) WordPress: ускорение, защита, оптимизация
35 wp01 20050 9.11.2022, 14:24
автор: wp01
Горячая тема (нет новых ответов) WordPress: ускорение, защита, оптимизация
41 wp01 9610 21.9.2020, 16:44
автор: wp01
Открытая тема (нет новых ответов) FinFile - новые возможности для монетизации Ваших файлов!
3 FileXmaster 2081 25.7.2020, 16:10
автор: -Condis-
Открытая тема (нет новых ответов) Нужна защита сайта от парсинга
Сайт парсит WpGrabber, нужна защита
18 Limonadik 4975 20.5.2020, 0:18
автор: pyaterka


 



RSS Текстовая версия Сейчас: 23.4.2024, 15:01
Дизайн