Prihodim jednu v zasade faktickou poznamku tykajici se dosti "schizofrenickeho" modelu licencovani. GNU/GPL rozhodne neresi nejake modely typu komercni-nekomercni pouziti a v tomto smeru je informace na webu znacne zavadejici. Autor by si mel ujasnit obsah licenci a pokud chce publikovat kod pod GPL, nemel by soucasne psat, ze v urcitych situacich se ma za pouziti platit - to z GPL skutecne nevyplyva. GPL rozhodne neomezuje komercni uziti dila... a pokud je neco vydano pod GPL, znamena to, ze i v komercnim prostredi to muzu pouzivat. Nejde rict, ze GPL plati jen pro nekomercni uziti - na to jsou jine licence (vc. autorovy vlastni). Psat na web, ze kod je GPL "jen nekdy" je publikace informace zavadejici (a v podstate znemoznujici zarazeni SW do beznych distribuci licence respektujici).
Dalsi poznamka je k "formalni" logice scriptu jako takove - sbiraji se tam veci jako jmeno, email, cislo mobilu... to uz muze byt vnimano jako shromazdovani osobnich udaju - jak se tohle resi treba u vas - mate pro toto patricnou registraci na UOOU? Sbirat osobni udaje dnes takova prdel jako pred lety uz take neni...
Dalsi poznamka je technicka - v ramci index.php se nacita cosi remote (z http) - jak je to s konzistenci, pokud jde o zapnute safe mode, zakazany url fopen apod? To asi fungovat pak moc nebude v situaci, kdy webserver trosku zabezpecim - dalsi otazka je, zda vubec budu behat tezkopadne apache/php na AP, pri predstave ze koncove AP dnes tvori ruzne lightweight platformy... skutecne bych premyslel i timhle smerem, ne vsude je jedno nabusene PC s hromadou karet.
Obecne scripty mazajici globalni chainy bez ohledu na to, co muze byt pripadne kolem jsou taky neoptimalni. Typicky slon v porcelanu - bezim ja, co je kolem me nezajima (narazim na zpusob ovladani iptables, v podstate efektivne likviduje lokalni firewall tim ze flushuje radu generickych tabulek...).
Z pohledu bezpecnosti - settestreg.cgi script je zavolatelny v zasate kdykoliv, neprovadi zadnou kontrolu v tom smyslu, ze by se kontrolovalo opakovane pouziti. Cele je to postavene na "utajeni" prislusneho tlacitka ve formulari v php logice (o ktere si take nemyslim, ze neni neprustrelna). V realu toto nesplni pozadovany ucel - tedy umoznit kratkodobe testovaci pripojeni, ale v podstate tu je moznost diky tomuto dashboardu byt pripojen trvale - staci se jen malicko snazit... a to opravdu neni to, co se na zacatku deklaruje (testovaci pripojeni na chvili).
A cele je to neskutecne "uforkovane", ale to je jenom takovy detail Priznam se, ze jsem se zmohl na letme code-review, nasadit bych se to osobne opravdu neodvazil.
Takze namety :
- optimalizovat...
- zbavit se overheadu typu php/apache+mod-rewrite...
- zabyvat se skutecne bezpecnosti (obscurity nestaci)
- pri modifikaci firewallu byt ohleduplny ke svemu okoli
- pokud mozno pracovat s lokalnimi informacemi, nesnazit se neco tahat over http...
- ujasnit si model licencovani
osobne se mi napad moc libi, nicmene protoze nektere stroje bezi na routerstationu, kde neni GNU sed, slo by skripty prekopat tak, aby byly tzv "sed neutral" ?
tj aby jim na verzi sedu nezalezelo?
__________________
V.I.R.N.I.K: Vigiliant Individual Responsible for Nocturnal Infiltration and Killing
Resistance is, and always has been futile...
na routerstationu je dost problem s mistem, tj man nemam nainstalovany.
myslel jsem to tak, ze by s danou alternativou pocitala treba nejaka dalsi verze dashboardu.
__________________
V.I.R.N.I.K: Vigiliant Individual Responsible for Nocturnal Infiltration and Killing
Resistance is, and always has been futile...
Pěkné, jenom pár poznámek.
Archiv je obvyklé dělat s adresářem. Stáhl jsem to a rozbalil, koukám že tam mám nějak moho souborů. Prosím o podadresář pro web, a shell skripty, nikoliv všechno do aktuálního adresáře.
Pokud jde o bezpečnost, VELICE obloukem bych se vyhnul spouštění shellu jako cgi skriptu, ve snaze ji zvýšit. Osobně bych to spáchal v perlu, i když pro embedded zařízení pravda nebude vždy dostupný. Rozhodně použití toho skriptu považuju řádově za nebezpečnější, než použití funkce exec() v php s ošetřenými vstupy. Zvláště laborování s QUERY_STRING, kterou jako uživatel můžu vyplnit čímkoliv z prohlížeče. Sice to vypadá poměrně slušně uvozovkované, takže základní ochranu to mít bude. Ale problémy by tam být mohly.
Osobně bych se vyhnul divokému sedování, a zpracoval soubory přes phpčko, Tedy přidání/odebrání uživatele by udělalo php, ze shellu pouze flush tabulky + nové naplnění. potom spustil příkaz přes exec bez parametrů, který by promítl změny do systému. Ale je vidět, že práci sis s tím dal, neber moji kritiku příliš ostře.
Jenom jako namet, delal jsem podobne reseni v zasade ve dvou exemplarich:
-verejne APcko kde se uzivatel pripoji a pouze odklikne ze chce pokracovat (odsouhlasi pravidla pouziti...) - ucel byl jednoduchy, aby se napr. k APcku v hospode nekdo nepripojoval trvale. Fungovalo to na routerech typu OpenWRT s tim, ze weby se zobrazobaly z externiho webserveru
-- v IPTABLES nastaveno presmerovani portu 80 samo na sebe
-- v lokalnim webserveru jako 404 stranka nejake presmerovani na externi server (na adresu hotspot.neco.cz?idrelace), ID je nejaky MD5 z nahodneho cisla a CGI skript si ho zaznamenal nekde ve WRTcku
-- uzivatel si na vzdalenem serveru precte podminky, klikne ze souhlasi... a dostane se zpet na wrt (vzdy na adresu 192.168.168.168, na kazdem wrt je na dummy)
-- po vraceni zpet se spusti CGI skript ktery povoli pripojeni pro danou IP/mac
-- hlavni vyhoda stranky mimo WRT - moznost jich mit vice a aktualizovat to z jednoho mista, restaurace si napr. mohla do te stranky sama nahravat obrazek s aktualni akci...
Druhe reseni mame takovy nejaky dashboard kterym se prihlasuji uzivatele z LMS. Router uzivatele vzdycky presmeruje na stranku na serveru, server se pripoji k routeru a zjisti si MAC adresu uzivatele (vetsinou se proste stahne ARP tabulka pres SNMP, ze ktereho routeru uzivatel prisel se pozna podle IP adresy), webova stranka (php skripty) zajisti prihlaseni uzivatele (veci jako overeni ze ma zaplaceno a ze se na tom miste muze pripojovat...), zaznamena si prihlaseni do databaze a vzdalene zavola proceduru na routeru ktera zajisti jeho rekonfiguraci podle databaze
__________________
Lide v CZFree se dělí na tři skupiny: 1) deu; netdave 2) ti co znají jejich čísla 3) ti ostatní
mj. neexistuje nejaky OpenSource "wireless controller" (tak jako to ma Cisco, HP a dalsi ?)
Nedavno se mi dostalo pod ruce takove reseni od HP a po pravde pro reseni typu "wifi ve firme" se mi to hodne libilo (ve zkratce - vse se konfiguruje z controlleru, APcka umi vice SSID, pokud poridim nove APcko tak ho kdekoliv ve firme zapichnu do switche a ono se samo nakonfiguruje, nemusim na to ani sahnout, pokud chcu pripdat treba SSID pro navsevniky s dashboardem tak je to otazka ti minut)
Libilo by se mi neco trosku podobneho na Linuxu, jako APcka treba neco s OpenWRT
__________________
Lide v CZFree se dělí na tři skupiny: 1) deu; netdave 2) ti co znají jejich čísla 3) ti ostatní