12 komentářů k článku Detekce AJAXových požadavků na serveru:

    1. cooler

      Re: Zaskodnik

      zneužít? jak můžeš změnou HTTP hlavičky něco zneužít? To bys asi nebyl dobrej programátor, kdyby ses nechat takhle zneužívat :-)

      1. Martin MalýAutor příspěvku

        Re: Zaskodnik

        Pravděpodobně kolega naráží na to, že taková kontrola není jednoznačná a že tuto hlavičku lze podvrhnout – takže např. pokud skript pošle na základě téhle hlavičky nějaké „citlivější informace“ v dobré víře, že je posílá skriptu, tak je to špatně. (Ale to je špatně tak jako tak, bez ohledu na HTTP hlavičky.)

        1. Strycek Skrblik

          Re: Zaskodnik

          Což vystihuje poslední věta předchozí reakce.

          Obecně mi ale tento přístup přijde zvláštní – volaný kód by se měl adresovat přímo, nikoli na základě hlaviček…

          1. Martin MalýAutor příspěvku

            Re: Zaskodnik

            Pokud jde o kód, tak samosebou. Ale řekněme, že jde o obsah, třeba stránku, a ten může být načten přímo prohlížečem (pokud AJAX nepodporuje), nebo může být načten nějakým loaderem pomocí AJAX a vložen do DIVu. A podle toho, jakým způsobem je volán, tak je náležitě upraven (pro posílání AJAXem např. nebude zabalen do HTML).

  1. cooler

    zend

    Ano, HTTP má i hlavičky :-)

    V Zend Frameworku v Controlleru potom staci:

    if ($this->_request->isXmlHttpRequ­est()) {

     }

    1. Martin MalýAutor příspěvku

      Re: zend

      Ano, HTTP má i hlavičky. A mnoho jich má! A zprávička hovoří zrovínka o jedné z nich, na které se kupodivu dokázali domluvit tvůrci různých JavaScriptových frameworků. ;)

      Za doplňující informaci o ZF děkuji.

      1. Martin MalýAutor příspěvku

        Re: zend

        Chybí tu informace o tom, co stačí v Ruby on Rails, v Django, v Javě a v ASP.NET. Snad nějací pozorní čtenáři doplní…

        1. Michal Augustýn

          Re: zend

          V ASP.NET MVC stačí Request.IsAjax­Request() ;-)

          Btw. je to takovej základ, že nechápu, jak bez téhle znalosti mohl doteď někdo žít. Resp. umím si představit ty (IMHO zbytečné) workaroundy.

          Znalost této hlavičky je např. dobrá při nastavení cachingu v ASP.NET, stačí dát varyByHeader…

          Btw. tuhle hlavičku používá i Microsoft Ajax Library.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://zdrojak.cz/?p=1025