Portál AbcLinuxu, 30. dubna 2025 21:12
No jo ale uvedene priklady jsou stale zranitelne, porad existuje odkaz, sice jej nikdo nezna ale existuje. Takhle to resim doposud.
Slo by jen pri pokusu nacist onen odkaz presmerovat na treba index, pokud neni osoba lognuta.
Tohle by bylo lepsi ne.
<?php if (!$logged) { // treba session header("Location: login.php"); exit; } header("Content-Type: text/plain"); ?> obsah souboru blebleble loremipsum
privat/
, do nej sem dal .htaccess
:
AuthName "Private area"
AuthType Basic
AuthUserFile /~neco/privat/.htpasswd
AuthGroupFile /dev/nulla
.htpasswd
, adresar je heslovany ale na soubor se poras dostanu zadam-li cestu neco/privat/aaa.pdf
. Tohle mi pripada nejake divne, pokud je zaheslovany cely adresar tak by mel byt i soubor v nem pristupny pres heslo,ne.
http://www.neco.cz/index.php
dat rovnou http://www.neco.cz/login.php
Ne??
<div id="alert" style="width:10em;margin:...;position..;left...;top....; blabla..; display:hidden;">text/obrazek</div> <script type="text/javascript"> // fce pro přístup k elementům přes ID pro různé prohlížeče function ObjId(id){ if (document.getElementById) { var returnVar = document.getElementById(id); } else if (document.all) { var returnVar = document.all[id]; } else if (document.layers) { var returnVar = document.layers[id]; } return returnVar; } if(blabla){ ObjId("alert").style.display='block'; } </script>
AuthUserFile /3w/borec.cz/r/rada/nereknu/.htpasswd AuthGroupFile /dev/null AuthName "Radkovo" AuthType Basic require valid-userJak vytvořit htpasswd? Buď přes crypt nebo v linuxu na to můžeš mít program (v Gentoo ano). Jinak můžeš provést klidně do .htaccess dát:
Order Allow,Deny Deny from Alla obsah budeš načítat přes php (a se správnou hlavičkou dávat uživateli). Třeba u těch pdf by to mělo smysl, na stránce to bude vypadat jako normální odkazy. Jestli si předtím uděláš session nebo něco jako já:
class security { var $login = array("radek" => md5(md5("heslo"))); function authenticate() { foreach ($this->login as $name => $pass) { if ($name === $_SERVER['PHP_AUTH_USER'] AND $pass === md5(md5($_SERVER['PHP_AUTH_PW']))) { return(true); } return(false); } } function login() { header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="Radkuv web"'); msg::error(403); exit; } //V kódu pak: $sec = new security(); if (!$sec->authenticate()) { $sec->login(); } else { //Co chceš }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.