ugrás a tartalomhoz

Archívum - Okt 28, 2011 - Fórum téma

Ajax & Post biztosítás

vtsoftware · 2011. Okt. 28. (P), 21.45
Üdv mindenkinek.

Egy olyan elméleti problémán akadtam meg, hogy hogyan tudnám megvédeni az Ajax lekérések fájljait és a Post-olt adatokat feldolgozó fájlokat attól hogy bárki, bármikor megnyithassa a "feldolgozó" fájlokat.

Adott egy oldal - urlap.php - amin van egy űrlap, ami adatokat küld post metódussal a feldolgoz.php-nek.
Hogy tudom a legbiztosabban leellenőrizni hogy a feldolgoz.php mindenképp az urlap.php-től kapott adatot?

Vagy a másik eset, mikor az oldal - nyito.php - időzítve elindít egy ajax lekérést a mikor.php-felé.
Semmit nem küld, csak megjeleníti a mikor.php tartalmát.
De ezt csak akkor kellene tennie ha ajax-al, a nyito.php-ről és annak a domainjéről lett megnyitva.

A Referer kilőve, űrlapnál az isset és a formátumellenőrzés az alap, ajax-nál a X-Requested-With header nem mondható 100%-os biztosnak, a defined-et nem mondanám elegánsnak - bár nem tudom.

Elgondolkodtam hogy esetleg Session-al valahogy meg lehetne ezt oldani...
Betöltéskor megnézem hogy létezik-e az adott session.
Ha nincs, létrehozom és eltárolom benne az akkori dátumot/időt.
Ha van, megnézem hogy a tárolt adat régebbi-e mint pl. 3 perc.
Ha nem régebbi, akkor minden rendben.
Ha viszont régebbi, akkor nem küldhetek 404-et vagy hibaoldalt/hibaüzenetet mert lehet hogy egy űrlapon eltölt a felhasználó 3 percnél többet... sőt.
Tehát szerintem ez az ötletem sem a legjobb.

Lehet egyáltalán ilyen "csak úgy" lekéréstől valahogy védekezni?

Előre is köszönöm
 

OOP class para

Leki · 2011. Okt. 28. (P), 18.48
Adott ez a két osztály
  1. class NewsClass extends MainClass{  
  2.     function __construct() {  
  3.         parent::_construct();  
  4.         $db=$this->db();  
  5.     }  
  6.     function test(){  
  7.         $result=$db->query("SELECT * FROM information_schema.TABLES");  
  8.         return $result->numRows();  
  9.     }  
  10.     function accessFilter(){  
  11.         parent::accessFilter();  
  12.           
  13.     }  
  14.     function getIdByurl(){  
  15.     }  
  16.   
  17.   
  18. }  
A másik:
  1. class MainClass{  
  2.     function __construct(){  
  3.         $db=$this->db();  
  4.         $this->accessFilter();  
  5.     }  
  6.     function accessFilter(){  
  7.           
  8.     }  
  9.     function db() {  
  10.         require_once(ROOT."/libs/pear/MDB2.php");  
  11.         $db=&MDB2::connect("mysql://".DBUSER.":".DBPASS."##kukac##".DBHOST."/".DBNAME);  
  12.         if (PEAR::isError($db)) die($db->getMessage());  
  13.         $db->setFetchMode("2");  
  14.         $db->setCharset("utf8");  
  15.         return $db;  
  16.     }  
  17.     function smarty() {  
  18.         require_once(ROOT."/libs/smarty/Smarty.class.php");  
  19.         $view=new Smarty();  
  20.         $smarty->force_compile=true;  
  21.         $smarty->caching=false;  
  22.         $view->template_dir=ROOT."/themes/templates/";  
  23.         $view->compile_dir=ROOT."/themes/templates_c/";  
  24.         $view->cache_dir=ROOT."/themes/cache/";  
  25.         $view->config_dir=ROOT."/themes/configs/";  
  26.         return $view;  
  27.     }  
  28.     function xml() {  
  29.         $parser=new myParser();  
  30.         $parser->setInputFile(_ROOT.'/lang/'._PAGE_LANGUAGE.'.xml');  
  31.         $parser->parse();  
  32.     }  
  33. }  
Ha meghívom a teszt függvényt, akkor :

"Fatal error: Call to a member function query() on a non-object"...

Ezzel szemben ha a teszt() a gyermek osztályban így néz ki
  1. class NewsClass extends MainClass{  
  2.     function __construct() {  
  3.         parent::__construct();  
  4.     }  
  5.     function test(){  
  6.                 $db=$this->db();  
  7.         $result=$db->query("SELECT * FROM information_schema.TABLES");  
  8.         return $result->numRows();  
  9.     }  
  10.     function accessFilter(){  
  11.         parent::accessFilter();  
  12.           
  13.     }  
  14.     function getIdByurl(){  
  15.     }  
  16.   
  17.   
  18. }  
Így működik, miért így van ez?

WebSpell CMS kérdés

Laurens · 2011. Okt. 28. (P), 12.04
Sziasztok!

Először is nem tudom jó helyre írom-e, remélem igen!
Egy WebSpell CMS alapú weboldalt készítek és eddig sikeresen veszem az akadályokat, ám most elakadtam valamiben, és nem tudom merre induljak el a probléma megoldásához! A gond a következő:

Minden oldalon bal oldalt egy kis dobozka kilistázza a legutóbb hozzáadott videókat.



Ez így is van egészen addig amíg bele nem megyek egy kategóriába illetve ha egy videót szeretnék megnézni.

OFF: Levlista

lolka_bolka · 2011. Okt. 28. (P), 10.40
Sziasztok!

Nagyon off, csak egy gyors kérdés, mert úgy látom, ahova feltettem a kérdésem, ott nem igazán nagy az aktivitás.

http://weblabor.hu/forumok/temak/110328

Illetve fel lehet iratkozni téma értesítőre?

Sorry az OFF-ért, de nagyon kéne a lista.