szakma

.svn könyvtárak tiltása Apache webszerveren

Ha az SVN-t web alkalmazások verziókezelésére használjuk, és az éles szerveren lévő fájlokat is verziókezelni akarjuk, akkor egyrészt jól jöhet a tipp, hogyan tegyük ezt leállás nélkül, másrészt belefutunk abba a problémába, hogy a webszerver megjeleníti a .svn könyvtárak tartalmát.

Ez nekünk nem jó, nagyon nem. Ugyanis biztonsági rés keletkezik, az egyébként gondosan felépített pajzson.

El kell tehát magyarázni a webszervernek, hogy a .svn könyvtárakat és azok tartalmát felejtse el, soha ne szolgáljon ki ilyen tartalmat.

Ha Apache kiszolgálót használunk, akkor ezt megtehetjük a .htaccess fájlokban is, de pratikusabb közvetlenül a központi konfigurációs fájlban, a httpd.conf-ban megtenni. Ennek helye linux rendszereken általában a /etc/httpd/conf/httpd.conf, Windows környezetben pedig C:\Program Files\Apache\Apache2\conf\httpd.conf

És a lényeg, hogyan tehetjük ezt meg:

<Directory ~ "\.svn">
  Order allow,deny
  Deny from all
</Directory>

A beállítás elég egyszerű, különösebb magyarázatot nem igényel. A ~ jelentése, hogy reguláris kifejezéssel mintát fogunk illeszteni az aktuálisan vizsgált útvonalra. A "\.svn" jelentése, hogy minden olyan elérési útra igaz a beállítás, amiben benne van a .svn string. A következő két sor meg annyit mond, hogy tilos kiszolgálni.

Ennyi, remélem hasznos volt.

Jósolható a PHP rand() függvénye win32 alatt

A weblabor php listáján hívta fel Fejes Dévid a figyelmet arra, hogy nála bizony fúrcsán viselkedik a php rand() függvénye. Akkor is utánanéztem, a dolognak, de most megint belefutottam a problémába.

Itt a teszt script (Fejes Dávid munkája):

<?php
header
("Content-type: image/png");
$im = @imagecreatetruecolor(512, 512) or die("Cannot Initialize new GD image stream");
$white = imagecolorallocate($im, 255, 255, 255);
for(
$y=0;$y<512;$y++){
  for(
$x=0;$x<512;$x++){
    if(
rand(0,1)){
     
imagesetpixel($im, $x, $y, $white);
    }
  }
}
imagepng($im);
imagedestroy($im);
?>

Ez a program windows rendszereken ilyen kimenetet ad:

Pedig valami ilyet kellene neki:

Ráadásul, ha egyszer sem seed-elünk, azaz nem hívunk srand()-ot, és legalább 512x512 képet generálunk, akkor teljes mértékben ismétlődik: újragenerálva, pontosan ugyanazt a képet kapjuk!

A megoldás, ha rand() helyett mt_rand()-ot használunk, vagy ha minden rand() előtt hívunk egy srand()-ot is. (Nem elég a program futás elején az srand, minden rand előtt hívni kell!)

Megnéztem, kis kedvencemben is mindenhol mt_rand()-ot használnak.

Mi a közös bennük: Firefox 2, MySQL 3, PHP4, Drupal 5?

Több mint két hete már, hogy megjelent a Firefox 3, kiváncsi lettem, hogy mennyien tértek át. Az F1világ látogatottsági statisztikája alapján az összes Firefox felhasználóból 17% tért át a 3-as verzióra. Ami kevés, szerintem.

Akkor mégis mi is a közös a Firefox 2, MySQL 3, PHP4 és Drupal 5-ben?

Nem, nem csak az hogy internettel kapcsolatos szoftverek, hanem az, hogy túl jól sikerültek, és kevesen tértek át az újabb verziókra.

A MySQL 3 hírhedt arról, hogy mennyi helyen használják, PHP4 szintén, és úgy néz ki a Drupal 5-el is ez a helyzet. Bár ez a hír valószínüleg lendít majd a Drupal 6 elterjedésében. Legalábbis remélem. Az FF3 penetráción meg egy Firebug dobna sokat, szerintem.

Oldalak

Feliratkozás RSS - szakma csatornájára