zabezpečení externího skriptu
- trta911
- Člen | 35
Na starším nette (tuším, že 2.4) používám pro tinymce nějaký filemanager. Pro to, aby se skript který je v adresáři www/skripty/tinymce/plugins/filemanager/upload.php načetl pouze pro přihlášené uživatele a abych zamezil nějakému nepovolenému uploadu mám ve skriptu následující:
$container = require(__DIR__ . '/../../../../../app/bootstrap.php');
$user = $container->getService('user');
if(!$user->isLoggedIn()) {
$httpResponse = $container->getService('httpResponse');
$httpResponse->redirect('/');
exit;
}
To v nette 3 již není funkční protože se kontejmer vytváří v indexu a já za Boha nemůžu přijít na to, jak docílit stejné funkcionality.
Poradíte prosím?
- Infanticide0
- Člen | 103
A proč by nemohlo fungovat to z www/index.php?
require 'path/to/vendor/autoload.php';
$configurator = App\Bootstrap::boot();
$container = $configurator->createContainer();
...
$user = $container->getService('user');
if(!$user->isLoggedIn()) {
$httpResponse = $container->getService('httpResponse');
$httpResponse->redirect('/');
exit;
}
- trta911
- Člen | 35
Infanticide0 napsal(a):
A proč by nemohlo fungovat to z www/index.php?
require 'path/to/vendor/autoload.php'; $configurator = App\Bootstrap::boot(); $container = $configurator->createContainer(); ... $user = $container->getService('user'); if(!$user->isLoggedIn()) { $httpResponse = $container->getService('httpResponse'); $httpResponse->redirect('/'); exit; }
To by se pak aplikovalo napříč celým projektem a to prívě nechci. Potřebuji takto pořešit jen ten jeden skript. V projektu jsou totiž i oblasti které musí zůstat dostupné bez potřeby být přihlášený
- Martin Dřímal
- Člen | 20
trta911 napsal(a):
To by se pak aplikovalo napříč celým projektem a to prívě nechci. Potřebuji takto pořešit jen ten jeden skript. V projektu jsou totiž i oblasti které musí zůstat dostupné bez potřeby být přihlášený
tak tam přidáš kontrolu url..?
...
if(str_contains($_SERVER['REQUEST_URI'], '/filemanager/upload.php') && !$user->isLoggedIn()) {
$httpResponse = $container->getService('httpResponse');
$httpResponse->redirect('/');
exit;
}
- trta911
- Člen | 35
Martin Dřímal napsal(a):
trta911 napsal(a):
To by se pak aplikovalo napříč celým projektem a to prívě nechci. Potřebuji takto pořešit jen ten jeden skript. V projektu jsou totiž i oblasti které musí zůstat dostupné bez potřeby být přihlášenýtak tam přidáš kontrolu url..?
... if(str_contains($_SERVER['REQUEST_URI'], '/filemanager/upload.php') && !$user->isLoggedIn()) { $httpResponse = $container->getService('httpResponse'); $httpResponse->redirect('/'); exit; }
ok, díky moc, to mě nenapadlo
- Kamil Valenta
- Člen | 815
Jsi si jistý, že interpretace
www/skripty/tinymce/plugins/filemanager/upload.php
prochází přes www/index.php ?