А причем оригинал? Есть стабильное API по нему и делать или вы хотите код просто портировать? Если второе то вообще смысла 0 это делать, потому что это прирост производительности хоть и будет но сколько людей нужно чтобы это все поддерживать(10-20), это ведь Си вы там сильно не наабстрагируетесь, КПД от этого чуть ли не нулевой. Короче, что я хотел сказать, такие большие вещи только методом раскрутки писать хорошо, но не наоборот!!! Посмотрите на Java, Scala, C# и их большие либы, это все bootstrapping метод.
Поэтому если у вас нет денег приличных для старта, можете не морочить себе голову, никто переписыванием нескольких тысяч классов не будет заниматься, потому что это глупо, на порядок дешевле купить лишний сервер.
Имхо, мертвая тема. Так как небольшое веб приложение, да и даже большое быстрое MVC приложение легко реализовывается без Си(и конечно же без zf sf ci yii и т.д.). Разница между exit('Hello world') и MVC в 2мс максимум с APC конечно. Смысла нет брать фреймворк на Си чтоб потом мучиться если что не так пойдет.
оно то как бы массив, но как только чуть глубже начать с этим работать начинается ад
$a = new ArrayAccessable;
$a['x'] = array('foo' => 'bar');
$a['x']['foo'] = 1;
это только то что сверху
очень полезного применения я этим интерфейсам не нашел, для чего то простого не плохо, что-то посерьезней — костыль на костыле, костылем погоняет
т.е. эти интерфейсы мало того что хуже по функциональности стандартных структур данных, так они даже не нормальное ООП
Речь шла не об одном запросе, а о нескольких с одной страницы, без ведома пользователя. Т.е. заходит пользователь на сайт злоумышленника скрипт делает запрос чтоб получить генерируемый ключ(token) предотвращения csrf и потом делает запрос уже с ключом. А если вы делаете просто запрос то ключа не будет, запрос не пройдет.
аа)) ну так это понятно, если есть xss, тогда вообще нет никаких проблем что-то получить, и никакая защита не поможет от csrf
но мы говорили о странице взломщика на которую заходит пользователь и флеш посылает кроссдоменный запрос на другой сайт, вот в чем разница
это будет работать если Access-Control-Allow-Origin: * например стоит, иначе нет
каким образом вы получите html или куки клиента зашедшего на вашу страницу которая обращается на другую страницу? объясните пожалуйста, если не трудно
сначала почитай о чем я говорил с VolCh, если ума хватит понять о чем идет речь, то сможешь сделать выводы если не хватит то не лезь в разговор с берелебердой типа img src='http://site.com/delete_my_account.php' которая не имеет к этому никакого отношения
мы не говорили о xss(внедрение произвольного кода) который ты приплел почему то к разговору, а о csrf (поделка запросов пользователя), и если на сайте нет xss, то csrf через проверку по рефереру не получиться, я об этом уже написал пару раз написал и об этом мы говорили. ты влепил какую то хрень типа «Этот тег я могу оставить форуме, гостевой или комментарии у Вас на сайте.» Как ты бля дятел оставишь если символы кодируются например через htmlentities или теги вообще удаляются, любой движок нормальный это делает.
короче, разберись в своей голове, и перечитай разговор тогда что-то отвечай. я лучше тебя понимаю отличия и взаимосвязи между CSRF и XSS. так что гуляй…
Если надумали слиться то так и скажите, что сморозил херню и все. Вы сначала сами разберитесь как CSRF и XSS связаны а тогда пишите глупости типа. На досуге разберитесь с функцией php.net/htmlentities
и быть может и на ваших сайтах перестанут появляться такие глупости как
Какая соседняя вкладка? Причем тут она, не понял.
JS имеет доступ к флешу(элементу спрятанному на странице). Вы в курсе что на флеше можно реализовать доступ к его объектам из JS?
Ладно рассказываю на пальцах. Flash умеет делать кросдоменные запросы, если домен предоставил ему доступ через crossdomain. Реализовывается программка на флеше которая ничего кроме запросов не умеет но имеет доступ из JS к ее функциям POST и GET уже реализованым в программе и это будет весить 10кб+-. Вы прячете на странице эту флешку. Пользователю достаточно зайти туда и все. Таким образом вы манипулируете непосредственно браузером(клиентом) пользователя. Флеш и есть часть клиента, все заголовки, куки, и прочее от клиента идут по указаному домену автоматом от браузера, кроме реферера это поле флеш сам ставит, все остальное идентично как будто вы зашли с браузера, понимаете?
Как пример обычный плеер. Он и совершает такие действия, например плеер ютуба. Он автоматом когда шлет запрос, то подхватывает все заголовки в том числе куки если они есть для домена/пути куда он шлет этот запрос.
Т.е. если по сути рассматривать это, то это обычный кродоменный ajax, но если вы для обычного кроссдоменного ajax-a должны на своем серевере какой то прокси иметь скрипт как пример, чтоб совершить запрос на другой домен. То в случае с флешем этим прокси он сам и является. Он и есть клиент, который взаимодействует посредством браузера, поэтому и ip и прощее остаются те ми же. В отличие от скрипта где IP уже будет сервера, ну соответсвенно куки никакие не отправляться на скрипт браузером.
P.S. Это атака потому что я могу распарсить страницу получить ваш ключ и отправить его на нужную форму. А если бы проверялся реферер я бы этого сделать не смог. Понимаете? Я могу var html = API.GET(«site.com», «q=1&q=2»); var token = html.match(/input type=«token» value="(.+?)"/)[1]; API.POST(«site.com», «q=1&q=2&token=»+token);
И это все от имени клиента. Вы считаете это не атакой?
Не все так просто. Если бы запретил crossdomain и все. Но нет. Мировые лидеры по видео контенту имеют эту уязвимость, а вы говорите просто закрыть. Закроете одно закроется и другое, я просто тему плотно изучал. Все расписывать тут по крайней мере не охата.
Способ с реферером работает. И не нужны никакие ключи и прочее. Например у меня так в фреймворке.
И фиг взломаешь. А то что как вы написали файрвол и т.д. Это конечно понятно, но ориентируюсь на массового пользователя. А если клиент сознательно юзает например tor или чего то еще это его проблемы. У меня например ни разу нареканий по моим сайтам на счет этого не было. Если например хочешь вывести деньги или еще чего важное будь добр, юзай то что и все. Вот и вся философия :)
Поэтому если у вас нет денег приличных для старта, можете не морочить себе голову, никто переписыванием нескольких тысяч классов не будет заниматься, потому что это глупо, на порядок дешевле купить лишний сервер.
разве что нет куда убить несколько лет жизни, а потом понять что это никому не нужно
1. Проверить откуда пришло это уведомление, т.е. реальный адрес.
… тогда все остальное уже ясно
$a = new ArrayAccessable;
$a['x'] = array('foo' => 'bar');
$a['x']['foo'] = 1;
это только то что сверху
очень полезного применения я этим интерфейсам не нашел, для чего то простого не плохо, что-то посерьезней — костыль на костыле, костылем погоняет
т.е. эти интерфейсы мало того что хуже по функциональности стандартных структур данных, так они даже не нормальное ООП
А less вообще бомба. Странно что никто раньше про него тут не писал.
но мы говорили о странице взломщика на которую заходит пользователь и флеш посылает кроссдоменный запрос на другой сайт, вот в чем разница
каким образом вы получите html или куки клиента зашедшего на вашу страницу которая обращается на другую страницу? объясните пожалуйста, если не трудно
мы не говорили о xss(внедрение произвольного кода) который ты приплел почему то к разговору, а о csrf (поделка запросов пользователя), и если на сайте нет xss, то csrf через проверку по рефереру не получиться, я об этом уже написал пару раз написал и об этом мы говорили. ты влепил какую то хрень типа «Этот тег я могу оставить форуме, гостевой или комментарии у Вас на сайте.» Как ты бля дятел оставишь если символы кодируются например через htmlentities или теги вообще удаляются, любой движок нормальный это делает.
короче, разберись в своей голове, и перечитай разговор тогда что-то отвечай. я лучше тебя понимаю отличия и взаимосвязи между CSRF и XSS. так что гуляй…
и быть может и на ваших сайтах перестанут появляться такие глупости как
JS имеет доступ к флешу(элементу спрятанному на странице). Вы в курсе что на флеше можно реализовать доступ к его объектам из JS?
Ладно рассказываю на пальцах. Flash умеет делать кросдоменные запросы, если домен предоставил ему доступ через crossdomain. Реализовывается программка на флеше которая ничего кроме запросов не умеет но имеет доступ из JS к ее функциям POST и GET уже реализованым в программе и это будет весить 10кб+-. Вы прячете на странице эту флешку. Пользователю достаточно зайти туда и все. Таким образом вы манипулируете непосредственно браузером(клиентом) пользователя. Флеш и есть часть клиента, все заголовки, куки, и прочее от клиента идут по указаному домену автоматом от браузера, кроме реферера это поле флеш сам ставит, все остальное идентично как будто вы зашли с браузера, понимаете?
Как пример обычный плеер. Он и совершает такие действия, например плеер ютуба. Он автоматом когда шлет запрос, то подхватывает все заголовки в том числе куки если они есть для домена/пути куда он шлет этот запрос.
Т.е. если по сути рассматривать это, то это обычный кродоменный ajax, но если вы для обычного кроссдоменного ajax-a должны на своем серевере какой то прокси иметь скрипт как пример, чтоб совершить запрос на другой домен. То в случае с флешем этим прокси он сам и является. Он и есть клиент, который взаимодействует посредством браузера, поэтому и ip и прощее остаются те ми же. В отличие от скрипта где IP уже будет сервера, ну соответсвенно куки никакие не отправляться на скрипт браузером.
И это все от имени клиента. Вы считаете это не атакой?
Способ с реферером работает. И не нужны никакие ключи и прочее. Например у меня так в фреймворке.
if ($_SERVER['REQUEST_METHOD'] == 'POST' && (!isset($_SERVER['HTTP_REFERER']) || parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST) != $_SERVER['HTTP_HOST'])) {
$this->_403()->send();
exit(0);
}
И фиг взломаешь. А то что как вы написали файрвол и т.д. Это конечно понятно, но ориентируюсь на массового пользователя. А если клиент сознательно юзает например tor или чего то еще это его проблемы. У меня например ни разу нареканий по моим сайтам на счет этого не было. Если например хочешь вывести деньги или еще чего важное будь добр, юзай то что и все. Вот и вся философия :)