abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 20:55 | IT novinky

    IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.

    Ladislav Hagara | Komentářů: 0
    včera 10:44 | Zajímavý článek

    Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.

    Ladislav Hagara | Komentářů: 12
    včera 01:00 | Nová verze

    Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 00:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    5.6. 16:44 | IT novinky

    Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.

    Ladislav Hagara | Komentářů: 10
    5.6. 10:44 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.

    Ladislav Hagara | Komentářů: 0
    5.6. 10:22 | Nová verze

    Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.

    Ladislav Hagara | Komentářů: 2
    5.6. 01:00 | Nová verze Ladislav Hagara | Komentářů: 0
    4.6. 19:55 | IT novinky

    Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.

    Ladislav Hagara | Komentářů: 0
    4.6. 13:44 | IT novinky

    Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Blacklist pro php

    17.9.2012 14:17 | Přečteno: 900× | Jen tak na okraj

    Je tomu půl roku, co jsem zde psal blogpost na téma zabezpečení mediawiki. Dlouhou dobu byl klid, ale v průběhu léta se objevily první vlaštovky, které si našly dírku a začaly se do naší mediawiki nabourávat zneužíváním stránek starých, již neaktualizovaných, webů. Nezbylo než pořešit situaci jinak - radikálněji.

    Napsal jsem si tedy malou php funkci, která zařízne další zpracování php skriptu, pokud jde klienta ze "zakázané" domény či adresy. Funguje zcela stupidně, ale spolehlivě. Přes nslookup se zjistí pro IP klienta doména, která se pak ověří proti seznamu zakázaných adres a domén. Nemá-li klient doménu, pouze IP, tak se ověřuje IP adresa.

    function testRemoteClientAddr($ip) {
        if(!empty($ip)) {
            exec("nslookup -type=MX ".$ip." | grep -E -m1 'in-addr.arpa|ip6.arpa'" , $result);
            $dnszaznam = explode(" ", $result[0]);
            //print_r($dnszaznam);
            if ($dnszaznam[0] == '**') {
                $zaznam = $ip;
            } else {
                $zaznam = $dnszaznam[count($dnszaznam) - 1];
            }
            $blacklist = '/etc/blacklist';
            if (is_file($blacklist)) {
                $denyhost = file($blacklist);
                $n = 0;
                while (count($denyhost) > $n) {
                    if (stristr($zaznam, trim($denyhost[$n]).'.')) {
                        return false;
                        } 
                    elseif ( $zaznam == trim($denyhost[$n]) ) {
                        return false;
                        }
                    elseif (strstr($zaznam, trim($denyhost[$n]))) {
                        return false;
                        }
                    $n++;
                    }
                }
            }
            return true;
        }
    
    if (testRemoteClientAddr($_SERVER['REMOTE_ADDR']) == false) {
        exit();
        }
    

    Funkce není nijak vázaná na mediawiki a lze ji tak použít na libovolné php stránce. Obsah souboru /etc/blacklist je jednoduchý. Následující kousek obsahu uvádím jen pro ilustraci..

    .skynetlink.com
    2001:4ba0:fff9:178::2
    .teda.net
    iasi.fiberlink.ro
    
           

    Hodnocení: 20 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    17.9.2012 14:43 loki
    Rozbalit Rozbalit vše Re: Blacklist pro php
    gethostbyaddr(...) ?
    17.9.2012 16:19 misch | skóre: 3
    Rozbalit Rozbalit vše Re: Blacklist pro php
    to bude rychlost, dotaz na DNS při každém přístupu ...
    17.9.2012 19:03 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: Blacklist pro php
    Neřekl bych, že je to nějaká tragédie.
    17.9.2012 22:08 sigma
    Rozbalit Rozbalit vše Re: Blacklist pro php
    To už bude horší ten exec / nslookup, navrch ještě s rourou na grep. Na každé zobrazení stránky to znamená spuštění 2 procesů. Horší než kdyby to celé jelo přes CGI (i když teda inicializace PHP bude stát víc než nslookup+grep). Ale pro tuhle potřebu to asi nemusí až tak vadit.
    17.9.2012 20:38 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Blacklist pro php
    Za mých mladých let se používal /etc/hosts.deny.
    17.9.2012 21:26 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: Blacklist pro php
    Ten používám taky, ale v případě webu to nemá ten odpovídající efekt.
    Petr Tomášek avatar 18.9.2012 08:03 Petr Tomášek | skóre: 39 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: Blacklist pro php
    multicult.fm | monokultura je zlo | welcome refugees!
    18.9.2012 08:57 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: Blacklist pro php
    I tohle jsem zkoušel. V takovém případě útočník záhy zjistil, že je doména blokovaná a začal to zkoušet odjinud. Řešení, které jsem použil má tu výhodu, že klient, který leze z blokované domény není serverem odmítnut, "jenom" se přestane zpracovávat skript. Takže sice dál buší jak hluchý do vrat, ale server to zatěžuje minimálně, protože mu vrací stránku z cache.
    18.9.2012 13:51 Roman DAVID | skóre: 24 | Brno
    Rozbalit Rozbalit vše Re: Blacklist pro php
    Zkuste mod_security do Apache. Mozna to bude lepsi nez to resit v PHP.
    18.9.2012 17:33 volvox | skóre: 16
    Rozbalit Rozbalit vše Re: Blacklist pro php
    No, přijde mi, že se pokoušíte vynalést kolo - sice trochu šišaté, zato vlastní ;)

    Já na tot s úspěchem používám mod_rewrite: Denying Hosts in a Blacklist
    rADOn avatar 18.9.2012 17:46 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Blacklist pro php
    Tohle by mělo být někde vystavený pro poučení generací budoucích. Jako odstrašující příklad.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    18.9.2012 17:53 loki
    Rozbalit Rozbalit vše Re: Blacklist pro php
    Je to funkcni reseni daneho problemu. Jiste by to slo udelat jinak, ale kdyz to autorovi takto vyhovuje, tak proc ne...
    rADOn avatar 19.9.2012 14:51 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Blacklist pro php
    Spawnovat tri procesy kvuli necemu na co je v php zabudovana funkce? Kterazto neni uplne nutna, pacz staci zapnout lookupy v apacovi a dostane to pekne pod nos v $_SERVER['REMOTE_HOST'].

    Ja kdybych takovehle "funkcni reseni" udelal v praci tak me vybědujou.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    19.9.2012 23:12 CH
    Rozbalit Rozbalit vše Re: Blacklist pro php
    +1

    Ale na druhou stranu to zda se funguje a to je to podstatne, zbytek nikoho nijak zvlast nezajima ... ale radsi proboha verejne neukazovat. :)

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.