Zobrazení revize projektu v PHP
- Filip Procházka
- Moderator | 4668
To není dobrý nápad. Tím že odhalíš konkrétní verzi, dáváš útočníkovi munici. Může si totiž dohledat jaké chyby obsahuje nástroj v dané verzi. Představ si, že by se objevily fatální chyby v Nette a ty bys ten projekt neaktualizoval. Pak by útočník nemusel vůbec zkoušet, co ti tam běží, ale rovnou by přešel k přesným typům útoků.
Proto se vypíná zobrazování verze PHP a Apache/nginx v patičkách chybových zpráv, co generuje server.
Nedělej to.
- Filip Procházka
- Moderator | 4668
Pokud máš git repozitář přístupný i na webu a používáš
push-deploy (nebo pull-deploy) tak ti může stačit si stáhnout libovolnou třídu na práci
s gitem a vypisovat cachované git log -n 1
- Ascaria
- Člen | 187
Nemám git a hg identify nevrací revizi ale složitě a dlouze počítá hash.
Do hgrc jsem zkusil nandat hook:
[hooks]
commit = echo committed $HG_NODE > web/temp/hook
Soubor to správně vytvoří, nicméně to nechce nahrazovat tu proměnnou, takže jsem jen v půlce.
Editoval Ascaria (17. 4. 2012 17:15)
- Ascaria
- Člen | 187
Tak se mi to podařilo vyřešit. Kdo by chtěl jednoduše zobrazovat verzi v administraci a používá NetBeans + Mercurial, může se inspirovat v následující metodě:
/**
* Gets version revision.
* @return Int
*/
public static function getRevision()
{
if(self::$revision === 0)
{
/*
Soubor hgrc:
[hooks]
commit = hg tip > web/temp/changeset
*/
// Cesta k souboru s changesetem, pokud existuje, vytáhneme z něj revizi
$file = __DIR__.'/../../temp/changeset';
if(is_file($file))
{
// Načteme si první rádku souboru
$f = fopen($file, 'r');
$line = fgets($f);
fclose($f);
// První číslo je revize "changeset: 71:fcfa26a6d5f4" a pokud bylo nalezeno, zapíše se do $revision
if(preg_match('/[0-9]+/', $line, $matches) > 0)
self::$revision = current($matches);
}
}
return self::$revision;
}
Soubor je potřeba jen nasměrovat například do složky temp v projektu. Soubor hgrc lze editovat např v TortoiseHg Workbenchi jako project settings > editace souboru, nebo přímo v „projectdir/.hg/hgrc“.
Hodinám luštění a ztraceným nervům zdar.
Editoval Ascaria (17. 4. 2012 19:41)