Stránka 1 z 3

Heslo

Napsal: sob 17. čer 2006, 09:23
od bivis
Chtěl bych umístit na stránku odkaz kde by měl přístup pouze ten kdo by napsal heslo.Jde něco takového udělat ?

Napsal: sob 17. čer 2006, 15:56
od sovicka
Tady máš takový malý skriptík v PHP - spíchnul jsem to za pár minutek, takže nemá ani ošetřené stavy (špatné heslo, dlouhé heslo, ...). Ovšem funkci plní.

Kód: Vybrat vše

<?php 
$detpass = $_POST["pdetpass"];
$pass = "nejake.heslo";				//sem napis jake heslo chces

if ($detpass == $pass) {
  Header("Location: http://www.celaadresa.cz");  		 //napis adresu stranky kam chces presmerovat
  Header("Connection: close");
	die;
}


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


<html>
<head>
<title>Nadpis</title>
</head>
<body>

<form action="" method="post">
<input type="password" name="pdetpass" />
<input type="submit" value="OK" />
</form>

</body>
</html>
//edit: předěláno na POST, GET by totiž asi nebyl moc bezpečný :lol:

Napsal: sob 17. čer 2006, 17:07
od sheriff.wiggum
co autorizace pres htaccess?

Napsal: sob 17. čer 2006, 22:54
od PCMark
sheriff.wiggum píše:co autorizace pres htaccess?
to je mnohem bezpečnější

jinak návod na různé druhy zaheslovávání je zde:
http://www.jakpsatweb.cz/heslo.html#moznosti

Napsal: ned 18. čer 2006, 09:47
od matajon
PCMark píše:to je mnohem bezpečnější
Jak jsi na to prisel ? :roll:

Napsal: ned 18. čer 2006, 10:24
od PCMark
matajon píše:
PCMark píše:to je mnohem bezpečnější
Jak jsi na to prisel ? :roll:
"Nejlepší systém ochrany údajů je autentifikace přímo na serveru."
zdroj: jakpsatweb.cz

proč by to jako nemělo být nejbezpečnější ?
co je podle tebe bezpečnější ?

Napsal: ned 18. čer 2006, 10:49
od sovicka
PCMark píše:"Nejlepší systém ochrany údajů je autentifikace přímo na serveru."
Ano, tedy PHP, .htaccess, a další server-side aplikace :)
Tím citátem bylo myšleno použití například JavaScriptu, který je pro tento účel zcela nevhodný.

.htaccess je prakticky stejně těžko prolomitelný jako php. Jediný případ který mě napadá (kdy je php autentifikace méně bezpečná) je případ, kdy se podaří útočníkovi shodit php modul na serveru - ovšem je otázkou, zda by pak apache do direktoráře zakázel přístup, nebo by php soubory prostě zobrazil v textovém režimu
+ještě jedna výhoda .htaccess je nenutnost instalovat php :lol:

Napsal: ned 18. čer 2006, 12:31
od PCMark
sovicka píše:Tím citátem bylo myšleno použití například JavaScriptu, který je pro tento účel zcela nevhodný
Tím citátem nebyl myšlený java skript, ale přímo konfigurace serveru pomocí .htaccess a .htpasswd.
Serverový skript (např. PHP, ASP nebo obecně libovolný CGI skript) je k zaheslování bezpečně použitelný jen pokud bude heslo zakodované v databázi třeba pomocí MD5.

Napsal: ned 18. čer 2006, 14:25
od Trinom
a co použít HTTPS + PHP/.htacces?

Napsal: ned 18. čer 2006, 14:41
od zombux
Trinom píše:a co použít HTTPS + PHP/.htacces?
osobně bych to dál moc neřešil, přece jen nevíme co autor threadu vlastně potřebuje :wink: je dost možný že má hosting bez PHP atd, tam už by byla jediná možnost a to javascript kterej louskne kdokoliv kdo umí zobrazit jeho zdroják. je taky možný že na serveru není povolen .htaccess... prostě nedostatečně zadanej problém

Napsal: ned 18. čer 2006, 20:02
od bivis
zombux píše:
Trinom píše:a co použít HTTPS + PHP/.htacces?
osobně bych to dál moc neřešil, přece jen nevíme co autor threadu vlastně potřebuje :wink: je dost možný že má hosting bez PHP atd, tam už by byla jediná možnost a to javascript kterej louskne kdokoliv kdo umí zobrazit jeho zdroják. je taky možný že na serveru není povolen .htaccess... prostě nedostatečně zadanej problém
Mám webhosting na webzdarma. Chci tam umístit stránku s tématem fotografie. Zaheslovat bych chtěl jeden odkaz kde budou mít přístup jen moji známý.Jsem úplnej začátečník, vše dělám ve Frontpage.Ale jinak moc díky za názory.

Napsal: ned 18. čer 2006, 20:19
od Oneeye_IO
Jestli děláš ve frontpage, tak si radši pročti www.jakpsatweb.cz :wink:

Napsal: ned 18. čer 2006, 21:42
od PCMark
webzdarma podporuje php i .htacces takže tam můžou fungovat všechny druhy zaheslování o kterých jsme tu psali

Napsal: úte 27. čer 2006, 17:24
od bubanek
sovicka píše:Tady máš takový malý skriptík v PHP - spíchnul jsem to za pár minutek, takže nemá ani ošetřené stavy (špatné heslo, dlouhé heslo, ...). Ovšem funkci plní.

Kód: Vybrat vše

<?php 
$detpass = $_POST["pdetpass"];
$pass = "nejake.heslo";				//sem napis jake heslo chces

if ($detpass == $pass) {
  Header("Location: http://www.celaadresa.cz");  		 //napis adresu stranky kam chces presmerovat
  Header("Connection: close");
	die;
}


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


<html>
<head>
<title>Nadpis</title>
</head>
<body>

<form action="" method="post">
<input type="password" name="pdetpass" />
<input type="submit" value="OK" />
</form>

</body>
</html>
//edit: předěláno na POST, GET by totiž asi nebyl moc bezpečný :lol:
Hm a co když někdo zadá tu adresu přímo, pak se ho to na heslo ptát nebude. Cookie,Sessions(raději)...?

Napsal: úte 27. čer 2006, 17:25
od bubanek
Jo,takže jinak. Buď sessions nebo .htaccess. :wink:

Napsal: úte 27. čer 2006, 18:56
od Trinom
bubanek píše:Hm a co když někdo zadá tu adresu přímo, pak se ho to na heslo ptát nebude. Cookie,Sessions(raději)...?
No, já si myslím, že by mu to mohlo stačit, protože koho zajímaj něčí rodinný fotky. Jinak trošku jiný skript, kterej používám já...

Kód: Vybrat vše

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>Titulek</title>
<link rel="stylesheet" type="text/css" href="../foto.css">
</head>
<h2>Zaheslovaná galerie</h2>
<?
 if($heslo != "heslo"): ?>
    <!--přihlašovací formulář -->
    <form action="anygal.php">
        Zadej heslo: <input type=password name="heslo">
        <input type=submit>
    </form>
<? ; else: ?>

<body>
 
Nějaký fotečky

<? endif ?>
</body>

</html>

Napsal: úte 27. čer 2006, 20:59
od Teuzz
zombux píše: javascript kterej louskne kdokoliv kdo umí zobrazit jeho zdroják
to neni zrovna pravda... co přepis MD5 pro JavaScript? :wink:

Pak tu někdo motá autentifikaci, htaccess a htpwd :roll:

Cookies? To si může:
a) každý změnit
b) každý vypnout
:twisted:

Udělal bych to tak, že do SESSION uložím nějak uperavenou IP adresu a budu kontrolovat, zda se nezměnila. Pokud sedí, budu tomu uživateli věřit. To je v aplikaci bez databáze celkem věrohodné. V aplikaci s databází přidávám HTTPS a další tři stupně ochrany.

čili NĚKOLIK ÚPRAV:

Kód: Vybrat vše

<?php 
session_start();
$detpass = $_POST["pdetpass"]; 
$pass = "nejake.heslo";            //sem napis jake heslo chces 

if ($detpass == $pass) {
  $IP =  $_SERVER['REMOTE_ADDR'];
  $IPP = explode(".",$IP); //zkratka pro IP_POLE ;-)
  $IP_OTISK = md5(($IPP[0]+36985)*($IPP[1]+123456)*($IPP[2]-689)*(($IP[3]-66)*3/2));
  $_SESSION['secure'] = $IP_OTISK;
  Header("Location: http://www.celaadresa.cz");         //napis adresu stranky kam chces presmerovat 
  Header("Connection: close"); 
   die; 
} 


?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 


<html> 
<head> 
<title>Nadpis</title> 
</head> 
<body> 

<form action="" method="post"> 
<input type="password" name="pdetpass" /> 
<input type="submit" value="OK" /> 
</form> 

</body> 
</html>
a pak do zobrazzované stránky naincludovat (

Kód: Vybrat vše

<? include 'soubor.php'; ?>
)

Kód: Vybrat vše

<?php
session_start();
$IP =  $_SERVER['REMOTE_ADDR'];
$IPP = explode(".",$IP); //zkratka pro IP_POLE ;-)
$IP_OTISK = md5(($IPP[0]+36985)*($IPP[1]+123456)*($IPP[2]-689)*(($IP[3]-66)*3/2));
if ($_SESSION['secure'] != $IP_OTISK){
exit('Neplatné spojení');
}
?>

Napsal: stř 28. čer 2006, 16:54
od Dj´ Frodo
a kdyz bych tam potreboval i jmeno a heslo a aby to vyhledávalo uzivatele v db tak jak na to??

Napsal: čtv 29. čer 2006, 02:38
od Lamicz
Jezisi, na co SESSIONS? Jako nevim, jestli to vite, ale:
a) zpomaluji
b) na toto je to uplne zbytecny
c) slouzi primarne pro predavani dat mezi jednotlivymi strankami v RS, coz v tomto pripade rozhodne neni.

Login pres DB s jmenem a heslem - tabulku do DB si vytvor - sloupce Id, Login a Password. V souboru db_pripojeni.php bude pripojeni do databaze.
Vlastni skript na login:

Kód: Vybrat vše

<?  
require("db_pripojeni.php");

if($_GET['action'] == login){

  login($_POST['login'], $_POST['password']);
}

// login
function login($login, $password){
  
  $res = mysql_query( "SELECT `Id` FROM `users` WHERE (`Login`='$login') AND (`Password`='$password')" );
  
  while($user = mysql_fetch_array($res)){ 
        
    header("Location: ___ tajna www___ ");
    exit;
  }
  header("Location: login.php");
  exit;
}
?>
<html>
<head>
<title>Nadpis</title>
</head>
<body>

<form action="login.php?action=login" method="post">
<input type="text" name="login">
<input type="password" name="password">
<input type="submit" value="OK">
</form>

</body>
</html> 
EDIT: TO Tritonovo nemusi fungovat (a asi nebude), protoze:

Kód: Vybrat vše

if($_POST['heslo'] != "heslo"):
<form method="POST"...>

Napsal: čtv 29. čer 2006, 07:19
od Trinom
Lamicz píše:EDIT: TO Tritonovo nemusi fungovat (a asi nebude), protoze:

Kód: Vybrat vše

if($_POST['heslo'] != "heslo"):
<form method="POST"...>
Tak, nejsem Triton, ale Trinom, ale to je fuk. Jakou úpravu bys navrhoval?

PS: funguje to OK...