Portál AbcLinuxu, 25. dubna 2024 10:54


Dotaz: Spouštění skriptu přes web

6.12.2021 21:55 PD321 | skóre: 3
Spouštění skriptu přes web
Přečteno: 455×
Odpovědět | Admin
Ahoj, mám pod běžným uživatelem "user" skript v Pythonu v /home/user. Při spuštění mu dám jako parametr hodnotu, kterou zpracuje a výsledek zakomponuje do HTML stránky v /srv/www/htdocs/. Funguje to a po zadání stránky do prohlížeče se výsledek zobrazuje. Nicméně hodnotu ke zpracování bych chtěl přes web i zadávat. Mám HTML stránku pro zadávání hodnoty, ta jí pak předá PHP skriptu, který se pokusí python script s právě získaným parametrem spustit. Jenže PHP skript se tváří jako uživatel "wwwrun" a není mu dovoleno python skript uživatele "user" spustit. Nejschůdnější cesta se mi jeví dát PHP skriptu právo spouštět python skript jako uživatel "user". Přidal jsem do sudoers řádek:

wwwrun ALL = (user) NOPASSWD: /home/user/skript.py

Funguje to, ale je to nejbezpečnější metoda? Díky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 6.12.2021 23:05 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Spouštění skriptu přes web
Odpovědět | | Sbalit | Link | Blokovat | Admin
/zpravicky/vazna-bezpecnostni-chyba-v-utilite-sudo-cve-2021-3156/diskuse#15
Já to s tou denacifikací Slovenska myslel vážně.
Josef Kufner avatar 7.12.2021 01:03 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Spouštění skriptu přes web
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jo, to je v pohodě. Jen se ujisti, že tu hodnotu předáváš správně. Tedy buď ta data na sypej na stdin toho skriptu, nebo volej příkaz bez shellu jako pole stringů a nikoliv jako jeden string, ať ti tam nejde vložit další příkaz.
Hello world ! Segmentation fault (core dumped)
AraxoN avatar 7.12.2021 07:55 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: Spouštění skriptu přes web
Ak v PHP argumenty do shellu escapuje volaním escapeshellarg(), potom to môže poslať ako jeden string. V odkazovanej stránke je príklad.
Josef Kufner avatar 7.12.2021 10:59 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Spouštění skriptu přes web
To sice ano, ale je tam dost prostoru pro chyby. Když to naskládá do pole, tak na tom není moc co zkazit (i když také to jde) a ještě to je trošku rychlejší.
Hello world ! Segmentation fault (core dumped)
7.12.2021 10:51 PD321 | skóre: 3
Rozbalit Rozbalit vše Re: Spouštění skriptu přes web
Díky, zaměřím se na to předávání.
7.12.2021 13:51 j
Rozbalit Rozbalit vše Re: Spouštění skriptu přes web
A nebylo by jednodussi to rovnou prepsat do toho phpcka? Dost pochybuju ze v tom bude nejakej zasadni rozdil ve vykonu. Jinak totiz krome toho predavani jeste riskujes to, ze ti ten script nekdo (ten user) upravi na neco ne zrovna kalyho(a nemusi to byt ani primo ten user, staci kdyz spusti nejakyho cervika), proto by takovy veci mely byt od prostoru uzivatele oddeleny.

---

Dete s tim guuglem dopice!
Josef Kufner avatar 7.12.2021 14:53 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Spouštění skriptu přes web
Rozdíl ve výkonu bude. PHP je o řád rychlejší.
Hello world ! Segmentation fault (core dumped)
7.12.2021 23:31 PD321 | skóre: 3
Rozbalit Rozbalit vše Re: Spouštění skriptu přes web
Ten python script dělá věci, co by PHP nedokázalo. User je můj účet a i celej ten stroj. Ten wwwrun mi připadá moc vystrčenej do sítě, proto chci toho maximálně dělat pod "userem".
AraxoN avatar 8.12.2021 10:02 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: Spouštění skriptu přes web
Ten python script dělá věci, co by PHP nedokázalo.
Ja som všetkými desiatimi za znovupoužiteľnosť, takže chápem, že máš niečo hotové a nechceš to prepisovať do nového jazyka. Odtiaľ-potiaľ podľa všetkého validné a správne rozhodnutie, ktoré nekritizujem. Ale tvrdiť, že Python dokáže niečo, čo PHP nie, na to by som chcel nejaký konkrétny príklad, aby som tomu mohol uveriť.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.