Archívum - Okt 28, 2011
Ajax & Post biztosítás
Ü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
■ 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
Adott ez a két osztályA másik: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Így működik, miért így van ez?
class NewsClass extends MainClass{
function __construct() {
parent::_construct();
$db=$this->db();
}
function test(){
$result=$db->query("SELECT * FROM information_schema.TABLES");
return $result->numRows();
}
function accessFilter(){
parent::accessFilter();
}
function getIdByurl(){
}
}
class MainClass{
function __construct(){
$db=$this->db();
$this->accessFilter();
}
function accessFilter(){
}
function db() {
require_once(ROOT."/libs/pear/MDB2.php");
$db=&MDB2::connect("mysql://".DBUSER.":".DBPASS."##kukac##".DBHOST."/".DBNAME);
if (PEAR::isError($db)) die($db->getMessage());
$db->setFetchMode("2");
$db->setCharset("utf8");
return $db;
}
function smarty() {
require_once(ROOT."/libs/smarty/Smarty.class.php");
$view=new Smarty();
$smarty->force_compile=true;
$smarty->caching=false;
$view->template_dir=ROOT."/themes/templates/";
$view->compile_dir=ROOT."/themes/templates_c/";
$view->cache_dir=ROOT."/themes/cache/";
$view->config_dir=ROOT."/themes/configs/";
return $view;
}
function xml() {
$parser=new myParser();
$parser->setInputFile(_ROOT.'/lang/'._PAGE_LANGUAGE.'.xml');
$parser->parse();
}
}
"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
class NewsClass extends MainClass{
function __construct() {
parent::__construct();
}
function test(){
$db=$this->db();
$result=$db->query("SELECT * FROM information_schema.TABLES");
return $result->numRows();
}
function accessFilter(){
parent::accessFilter();
}
function getIdByurl(){
}
}
WebSpell CMS kérdés
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.
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
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.
■ 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.