login sistem
 
uki20. feb 2010 13:42:35Pridružen od:
8. dec 2009
18 objav
+1-130
#1Zanima me če se vam zdi tale zadeva varna?

koda:
<?php

include 'gesla.php';

if ($_POST['txtUsername'] != $username || $_POST['txtPassword'] != $password) {

?>


<form name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p><label for="txtUsername">Uporabnik:</label>
<br /><input type="text" title="Enter your Username" name="txtUsername" /></p>

<p><label for="txtpassword">Geslo:</label>
<br /><input type="password" title="Enter your password" name="txtPassword" /></p>

<p><input type="submit" name="Submit" value="Vpis" /></p>

</form>

<?php

}
else {

?>

<p>Dobrodošli na zavarovani spletni strani.</p>

<?php

}

?>

koda za gesla.php:
<?php

$username = "admin";
$password = "1234";

?>
všeč(0)ni všeč(0)spam(0)
 
kopriva20. feb 2010 14:46:42Pridružen od:
6. nov 2007
754 objav
+282-278
#2Ampak, s tem si samo preveril, če je geslo pravilno in prikazal neko določeno podstran, kjer samo to poveš, da je geslo bilo pravilno vpisano. Večji catch je v tem, kako boš zdaj poskrbel za SESSION ali COOKIE itd ... Brez tega nisi praktično nič naredil. :-)
všeč(0)ni všeč(0)spam(0)
Si že slišal komad "Žan Nekrep killed the video star?"
 
uki20. feb 2010 15:29:18Pridružen od:
8. dec 2009
18 objav
+1-130
#3Ja tale zadeva je zaenkrat samo da zavaruje podstran, zanima pa me če jo s tem dobro zavarujem (da se ne da dobit gesla iz kode, ali kaj podobnega).
Pa še to a bi mogel mogiče omejit znake, ki so primerni za vpis?
všeč(0)ni všeč(0)spam(0)
 
kopriva20. feb 2010 15:52:42Pridružen od:
6. nov 2007
754 objav
+282-278
#4Tukaj gre za majhen trade-off: če boš omejil znake, je v teoriji lažje brute-forcat (s poskušanjem ugotovit) geslo, po drugi strani pa lahko določeni znaki uporabnike tako zmedejo, da sploh ne bodo znali pravilno vpisati gesla. Priporočam ti, da se raje omejiš na neke "klasične" znake.

Še en praktičen nasvet ... Če gre za case insensitive login, potem vse znake pač vedno daj v lower/upper case, ko jih preverjaš. To pomeni, da če kdo napiše "prAvIlnOgeSLo" ali "PRAVILNOGESLO" ali "pravilnogeslo" - da ga vedno spusti skozi.

Drugače pa je kratek in recimo "realen" odgovor na tvoje vprašanje ne - ne da se kar tako dobiti tega gesla iz kode. Moraš biti kar precej štorast, da pridejo do njega. Torej, naj te to ne skrbi.
všeč(0)ni všeč(0)spam(0)
Si že slišal komad "Žan Nekrep killed the video star?"
 
uki20. feb 2010 16:27:47Pridružen od:
8. dec 2009
18 objav
+1-130
#5Naletel sem še na eno težavo, ko dodam na stran povezavo do druge podstrani, se da na to drugo podstran dostopat z url-jem, če dam pa še na drugo stran to kodo za login jo je potrebno spet vpisat da prideš do strani.

Kako bi to težavo odpravil?
všeč(0)ni všeč(0)spam(0)
 
kopriva20. feb 2010 16:31:24Pridružen od:
6. nov 2007
754 objav
+282-278
#6hehe :-) Se mi je zdelo, da ti to ni najbolj jasno. Zato sem ti tudi že omenil, kje se zna skrivati srž problema. Poglej si malo avtentikacijo/login sisteme s COOKIE-ji ali SESSION-i. Ti moraš "avtentikacijske podatke" zapisati v "cookie".

Potem pa na tisti drugi oz. vseh podstraneh, kjer želiš preverjati, če je nekdo zares "prijavljen na stran", prebrati vsebino tega cookie-ja oz. pogledati, ali je sploh zapisan.
všeč(0)ni všeč(0)spam(0)
Si že slišal komad "Žan Nekrep killed the video star?"
 
george20. feb 2010 20:02:51Pridružen od:
14. jan 2010
6 objav
000
#7tako kot je kopriva rekel. ali je uporabnik že registriran ali ne si zapiši v session lahko tudi cookie in potem na vsaki strani (kjer pac noces anonimnega dostopa) preverjaj ali je uporabnik ze registriran, in ce ni ga redirectas na to login stran.

npr.:

...
<?php

}
else {
$_SESSION["loggedin"] = "true";
?>

<p>Dobrodošli na zavarovani spletni strani.</p>
...

potem pa npr. na zacetku vsake strani (pred HTML <head> tagom!)

<?php if($_SESSION["loggedin"] != "true") {
header("location: {$location}");
}
?>


se en nasvet je da spravis gesla v loceno datoteko ki jo imas na disku v direktoriju visje od dejanske internet strani. ce imas npr. root strani na c:\inetpub\wwwroot\stran\public\ bi imel file z geslom na npr.: c:\inetpub\wwwroot\stran\private\...

Je rahlo bolj varno v primeru da nekdo dobi dostop do browsanja filov na root-u tvojga page-a ali pa je pomotoma napacno nastavljeno...
nazadnje urejal george 20. feb 2010 20:04:01
všeč(0)ni všeč(0)spam(0)
Improving web bit by bit http://www.inbit.si
 
bl4ckb1rd20. feb 2010 20:10:32Pridružen od:
18. avg 2008
736 objav
+217-543
#8Okej tut sami sessioni niso dovolj... takoj lahko pofejkaš session, treba je še preverjati resničnost sessiona, tako da ga vsakič zapišeš v mysql bazo pod nek ključ, ter dodaš nek timeout, koliko časa je uporabnik lahko neaktiven da je še vedno session aktiven. Pri vsakem dostopu pa seveda preveriš da je ključ na uporabniku isti kot tisti v bazi, ter da je res loggedin true.
všeč(+2)ni všeč(0)spam(0)
Ruska ruleta v command line-ju: [ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo *Click*
 
uki20. feb 2010 20:17:03Pridružen od:
8. dec 2009
18 objav
+1-130
#9Hvala usm :) Sm zrihut zdei s cookiji pa dela tko k more.
všeč(0)ni všeč(0)spam(0)
 
stran 1 od 1 |<<1>>|
Sledimo Marinu!
Naš uporabnik Marin se je odpravil na veslanje s kajakom od Savudrije do Zakintosa, podrobnosti lahko preberete v temi Zdrav duh v zdravem telesu
42.69°N, 17.74°E
zadnja posodobitev: 30. jul 15:56:45