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 23:55 | Nová verze

    Byla vydána nová stabilní verze 24.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Uakari. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | Nová verze

    Byla vydána nová verze 1.48.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Fernando F. Mancera. Mimo jiné se v nastavení místo mac-address-blacklist nově používá mac-address-denylist.

    Ladislav Hagara | Komentářů: 5
    včera 17:11 | Komunita

    Před 25 lety, 31. května 1999, započal vývoj grafického editoru Krita (Wikipedie). Tenkrát ještě pod názvem KImageShop a později pod názvem Krayon.

    Ladislav Hagara | Komentářů: 2
    včera 12:55 | Nová verze

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 24.05.0 editoru videa Kdenlive (Wikipedie). Ke stažení brzy také na Flathubu.

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

    David Revoy, autor mj. komiksu Pepper&Carrot, se rozepsal o své aktuální grafické pracovní stanici: Debian 12 Bookworm, okenní systém X11, KDE Plasma 5.27, …

    Ladislav Hagara | Komentářů: 5
    30.5. 22:44 | Nová verze

    Wayland (Wikipedie) byl vydán ve verzi 1.23.0. Z novinek lze vypíchnout podporu OpenBSD.

    Ladislav Hagara | Komentářů: 0
    30.5. 21:22 | Zajímavý článek

    Craig Loewen na blogu Microsoftu představil novinky ve Windows Subsystému pro Linux (WSL). Vypíchnout lze GUI aplikaci pro nastavování WSL nebo správu WSL z Dev Home.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:44 | Pozvánky

    V sobotu 1. června lze navštívit Maker Faire Ostrava, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:22 | Nová verze

    Webový server Caddy (Wikipedie) s celou řadou zajímavých vlastností byl vydán ve verzi 2.8 (𝕏). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 11
    29.5. 22:11 | Nová verze

    Byla vydána verze 3.0 (@, 𝕏) svobodného softwaru HAProxy (The Reliable, High Performance TCP/HTTP Load Balancer; Wikipedie) řešícího vysokou dostupnost, vyvažování zátěže a reverzní proxy. Detailní přehled novinek v příspěvku na blogu společnosti HAProxy Technologies.

    Ladislav Hagara | Komentářů: 7
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (90%)
     (3%)
     (4%)
     (4%)
    Celkem 1060 hlasů
     Komentářů: 17, poslední včera 15:31
    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.