Script na TOTO heslo ako na to?

Programovacie jazyky, rady, poradňa...
aaaa
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 241
Registrovaný: 23 okt 2005, 13:22

Script na TOTO heslo ako na to?

Príspevok od používateľa aaaa »

http://www.darkangel.orava.sk/cecka/fotoprvak.php
Chcem toto taky scrip kde zadam len ine heslo.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

skús toto:

Kód: Vybrať všetko

<?php
$premena = array ("username1" => "password1",
            "username2" => "password2",
            "username3" => "password3");

            
function check_login() {
   GLOBAL $premena;      
   foreach ($premena as $username => $password) {
      
   if($_POST['txtUsername'] == $username && $_POST['txtPassword'] == $password) {
         $out = true;
         break;
      } else {
         $out = false;
      }
   }

return $out;
}

if(isset($_POST['ok'])) {
      if(check_login()) {
         header ("Location: http://www.spravnastranka.php");
      } else {
         header ("Location: http://www.zlastranka.php");
      }
} else {


?>
<form action="" method=post>
Login: <input type=text name="txtUsername"><br>
Pass: <input type=password name="txtPassword"><br>
<input type=submit name="ok">
</form>
<? } ?> 
spravnastranka.php nahraď stránkou s obsahom ktorá sa má zobraziť po prihlásení. Aby ju nebolo také ľahké nájsť, pomenuj ju napríklad Dkdf1d6sd18dpb9d.php
zlastranka.php je stranka na ktorú presmeruje ak zadá zle heslo, napríklad na nej bude obsah "ODPÁL".
Na začiatku sú takéto dvojice: "username2" => "password2" To znamená že ich môžeš nahradiť za meno a heslo. Rovankým spôsobom si môžeš dať viac mien a hesiel, alebo naopak odobrať dve aby bola len jedná možnosť.
Hip-hoper
Star
Star
Používateľov profilový obrázok
Príspevky: 573
Registrovaný: 15 jan 2006, 23:05
Bydlisko: Sabinov
Kontaktovať používateľa:

Príspevok od používateľa Hip-hoper »

audiotrack to mas z hlavy?ja len kukam ako dement odkial ty take vies... :D este sa musim veeeeela ucit :oops:
aaaa
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 241
Registrovaný: 23 okt 2005, 13:22

nejde

Príspevok od používateľa aaaa »

nedje
johny17
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 488
Registrovaný: 17 nov 2005, 18:01
Bydlisko: Bratislava
Kontaktovať používateľa:

Príspevok od používateľa johny17 »

povedz co ti nejde....ci ti vypise nejaku chybu alebo co...
mikkimikki
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1128
Registrovaný: 14 dec 2005, 16:41
Bydlisko: Prague

Príspevok od používateľa mikkimikki »

2audiotrack: nieje to nahodou nejak slabo zabezpecene ... alebo skor vobec ....
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

mikkimikki napísal:2audiotrack: nieje to nahodou nejak slabo zabezpecene ... alebo skor vobec ....
tak proti brutal force určit nie, ale si pozri tú stránku čo dal že chce také niečo.. tam to majú asi tiež takto riešené.
jakub199
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 339
Registrovaný: 21 sep 2005, 17:36
Bydlisko: Severna stena K2 druhy by
Kontaktovať používateľa:

Príspevok od používateľa jakub199 »

tak toto daj na stranku kde sa bude logovat

Kód: Vybrať všetko

<form name="form1" method="post" action="login.php">
  <p>Meno:
    <input name="meno" type="text" id="meno" value="">
  </p>
  <p>Heslo: 
    <input name="heslo" type="password" id="heslo"> 
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
</p>
</form>

a toto len uloz ako login.php

Kód: Vybrať všetko

<script language="php">
$heslo=$_POST["heslo"];
$meno=$_POST["meno"];
$name="meno ";
$pswd="heslo";
if($heslo==$pswd and $name==$meno){

header("location:*");


}
else{
   header ("location:**")
   }

</script>
* stranka ktora sa zobrazi pod spravnom zadani hela a mena
** pri zlom zadani mena alebo hesla
ano Viem ze to nieje zabezpecene ale nech nazve tie stranky tieak divne ako 123 alebo 456 a bude to snad v pohode
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

neuveritlne bezpecne, vymyslat komplikovane nazvy strankam, :lol:

Kód: Vybrať všetko

 // index.php
<?php
session_start();

$head = '<html><head><title>moja prvotina</title></head><body>';
$end = '</body></html>';
$form = '<form name="form1" method="post" action="index.php">
Meno: <input name="meno" type="text" value=""><br />
Heslo: <input name="heslo" type="password" value=""><br />
<input type="submit" value="Submit">
</form>';
$errMsg = "";

$name = "user";
$pass = "heslo";

if( ( isSet($_POST['meno']) && isSet($_POST['heslo']) ) && ( $_POST['meno']  == $name && $_POST['heslo'] == $pass)  )
  $_SESSION['logged'] = true;
else
  $errMsg = "<span style="color: red; font-weight: bold;">Zadal si zle meno alebo heslo!!!</span><br />";

if( isSet($_SESSION['logged']) && $_SESSION['logged'] )
{
  $html = $head."Vitaj!".$end;  
}
else 
{
  $html = $head.$errMsg.$form.$end;
}

echo $html;
?>
dotvor si to podla svojho, ale takto nejak by sa to malo robit.
mozno sa vyskytne chyba, pisal som to bez odskusania.
programator
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 18 apr 2005, 8:31
Bydlisko: Papua new Guinea
Kontaktovať používateľa:

Príspevok od používateľa programator »

taq ja by som to dotvoril a zaroven asi o dost lepsie zabezpecil...

Kód: Vybrať všetko

 // index.php 
<?php 
session_start(); 

$head = '<html><head><title>moja prvotina</title></head><body>'; 
$end = '</body></html>'; 
$form = '<form name="form1" method="post" action="index.php"> 
Meno: <input name="meno" type="text" value=""><br /> 
Heslo: <input name="heslo" type="password" value=""><br /> 
<input type="submit" value="Submit"> 
</form>'; 
$errMsg = ""; 

$name = "user"; 
$pass = "heslo"; 

if( ( isSet($_POST['meno']) && isSet($_POST['heslo']) ) && ( $_POST['meno']  == $name && $_POST['heslo'] == $pass)  ) 
  $_SESSION['logged'] = true; 
else 
  $errMsg = "<span style="color: red; font-weight: bold;">Zadal si zle meno alebo heslo!!!</span><br />"; 

if(empty($_SESSION['logged']) || !$_SESSION['logged'] ) 
{ 
   $html = $head.$errMsg.$form.$end;
   exit(); //zastavi beh scriptu php
} 

echo $html; 
?>
a toto by si mal includovat do kazdej stranky ktoru xes mat "zabezpecenu"...

Tak napriklad niecotajne.php bude vyzerat takto :
<?php include("index.php"); ?>
<html>
<head.........

a ak user nebude prihlaseny, tak sa zastavi beh scriptu v tom index.php a dalej by nemal ist...
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

to programator: ty si jakoze neurobil nic. iba nevypise chybovu hlasku.
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

programator napísal:taq ja by som to dotvoril a zaroven asi o dost lepsie zabezpecil...
tak dik, vdaka exit(); mi v konecnom dosledku server neposle ziadnu odpoved, takze ako uzivatel asi budem z toho velmi mudrejsi.
co sa tyka bezpecnosti, exit() nic neriesi, nie je to bezpecnostny prvok, len ukoncuje beh.
jakub199
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 339
Registrovaný: 21 sep 2005, 17:36
Bydlisko: Severna stena K2 druhy by
Kontaktovať používateľa:

Príspevok od používateľa jakub199 »

pravdu povediac ja by som to tak urcite nerobil (myslim moj script) osobne to mam spravene tak ze ked sa logne zmeni to urcitu hodnotu v databaze
a potom mam v s scripte zriesene to ze najprv zistit aka ja hodnota v db toho kluca a ak je spravna tak pokracuje dalej a napriklad vypise z db tie fotky
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

jakub199 napísal:pravdu povediac ja by som to tak urcite nerobil (myslim moj script) osobne to mam spravene tak ze ked sa logne zmeni to urcitu hodnotu v databaze
a potom mam v s scripte zriesene to ze najprv zistit aka ja hodnota v db toho kluca a ak je spravna tak pokracuje dalej a napriklad vypise z db tie fotky
ale ber do uvahy, ze pri kazdom requeste na server musis zistit overenie v db, co nie je narocne ale vramci celkoveho optimalizovania je to zbytocny dotaz na db.
dalsia vec je, ked sa uzivatel korektne neodhlasi, tak v db budes mat stale informaciu o spravnom prihlaseni, to znamena, ako keby ostal uzivatel navzdy prihlaseny. ked pouzijes session, tak aj ked sa uzivatel korektne neodhlasi, session expiruje na serveri (defaultne 24 min) a automaticky sa bude uzivatel nachadzat v stave odhlaseny.
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

IgiPoP napísal:ale ber do uvahy, ze pri kazdom requeste na server musis zistit overenie v db, co nie je narocne ale vramci celkoveho optimalizovania je to zbytocny dotaz na db.
dalsia vec je, ked sa uzivatel korektne neodhlasi, tak v db budes mat stale informaciu o spravnom prihlaseni, to znamena, ako keby ostal uzivatel navzdy prihlaseny. ked pouzijes session, tak aj ked sa uzivatel korektne neodhlasi, session expiruje na serveri (defaultne 24 min) a automaticky sa bude uzivatel nachadzat v stave odhlaseny.
tak ale tiez nie je problem spravit automaticke odhlasovanie pri necinnosti aj z DB .... ale ako si povedal zbytocne zlozite .. sessions to istia


btw igipop .. v tom tvojom skripte sessions asi vobec nie je treba ked sa logujes na tej istej stranke ako je obsah ... to ti staci nastavit akukolvek premennu na true a podla nej zobrazit bud stranku alebo error hlasku ... sessions treba hlavne ak to presmerovavas na dalsiu a tam to potrebujes mat tiez zabezpecene

:) ale to urcite vies .. ja len aby to aj ostatni vedeli :)
programator
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 18 apr 2005, 8:31
Bydlisko: Papua new Guinea
Kontaktovať používateľa:

Príspevok od používateľa programator »

SorrY, nevsimol som si, ze kde sa mu vypisuje ta chybova hlaska...ale nejde mi do hlavy akoze som nic nevylepsil ?? sak ak neni prihlaseny tak sa nedostane ani na danu stranku... tak akoze ? urcite bezpecnejsie ako nazvat nejaky subor 123456789.php nie ? a dostavat sa tam headerom...
a teraz som to uz totalne vyriesil aj odladil....

Kód: Vybrať všetko

 // index.php 
<?php 
session_start(); 

$input = "<html>
<head>
<title>moja prvotina</title>
</head>
<body> 
<form name=\"form\" method=\"post\" action=\"index.php\"> 
Meno: <input name=\"meno\" type=\"text\" value=\"\"><br /> 
Heslo: <input name=\"heslo\" type=\"password\" value=\"\"><br /> 
<input type=\"submit\" name=\"odoslat\" value=\"Submit\"> 
</form>";

$name = "user"; 
$pass = "heslo"; 

if( ( isSet($_POST['meno']) && isSet($_POST['heslo']) ) && ( $_POST['meno']  == $name && $_POST['heslo'] == $pass)  ) 
{
  session_register("logged");
  $_SESSION['logged'] = true; 
}
else if(!empty($_POST['odoslat'])) 
{
   echo $input;
   echo "<span style=\"color: red; font-weight: bold;\">Zadal si zle meno alebo heslo!!!</span><br />";
}
else echo $input; 

if(empty($_SESSION['logged']) || !$_SESSION['logged'] )
{ 
   echo "cha cha...";
   exit(); //zastavi beh scriptu php 
} 
?>
</body></html>
jakub199
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 339
Registrovaný: 21 sep 2005, 17:36
Bydlisko: Severna stena K2 druhy by
Kontaktovať používateľa:

Príspevok od používateľa jakub199 »

IgiPoP napísal:ale ber do uvahy, ze pri kazdom requeste na server musis zistit overenie v db, co nie je narocne ale vramci celkoveho optimalizovania je to zbytocny dotaz na db.
dalsia vec je, ked sa uzivatel korektne neodhlasi, tak v db budes mat stale informaciu o spravnom prihlaseni, to znamena, ako keby ostal uzivatel navzdy prihlaseny. ked pouzijes session, tak aj ked sa uzivatel korektne neodhlasi, session expiruje na serveri (defaultne 24 min) a automaticky sa bude uzivatel nachadzat v stave odhlaseny.
Beriem do uvahy ze to nieje najlepsie riesenie a je cas sa nad tym zamysliet a prepracovat :idea: :idea: :?
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

gwixt napísal:btw igipop .. v tom tvojom skripte sessions asi vobec nie je treba ked sa logujes na tej istej stranke ako je obsah ... to ti staci nastavit akukolvek premennu na true a podla nej zobrazit bud stranku alebo error hlasku ... sessions treba hlavne ak to presmerovavas na dalsiu a tam to potrebujes mat tiez zabezpecene

:) ale to urcite vies .. ja len aby to aj ostatni vedeli :)
filozofia toho celeho je nepouzivat presmerovania na ine stranky, je to neprakticke, najlepsie je ked sa cela stranka zobrazuje z jedneho fileu (index.php). to uz aku logiku pouzijes na vykreslovanie zvoleneho je na kazdom programatorovi. v takomto pripade je potrebne aby sa informacie prenasali v session.


// edit

to programer:
neviem ci si to aj testoval, ale od pohladu viem, ze aj ked sa spravne prihlasis, tak pri dalsom requeste globalnu premennu $_POST budes mat prazdnu a bude ti vypisovat prihlasovaci formular.

PS1: co sa zobrazi hned po uspesnom prihlaseni?
PS2: session_register() doporucujem nepouzivat a v tvojom pripade je pouzity zbytocne.
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

IgiPoP napísal:filozofia toho celeho je nepouzivat presmerovania na ine stranky, je to neprakticke, najlepsie je ked sa cela stranka zobrazuje z jedneho fileu (index.php). to uz aku logiku pouzijes na vykreslovanie zvoleneho je na kazdom programatorovi. v takomto pripade je potrebne aby sa informacie prenasali v session.
asi tak. najlepsie je to robit cez jednu hlavnu stranku a ostatne stranky do nej nacitavat ako moduly, potom je velmi jednoduche zabezpecit, nemohol byt nejaky modul spusteny bez toho aby bol zabaleny do hlavnej stranky.
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

mastermind napísal:asi tak. najlepsie je to robit cez jednu hlavnu stranku a ostatne stranky do nej nacitavat ako moduly, potom je velmi jednoduche zabezpecit, nemohol byt nejaky modul spusteny bez toho aby bol zabaleny do hlavnej stranky.
tiez je to dobre pre vyhladavacie roboty, alebo ked si casom zmyslis dorobit SEO adresy, nie je problem.
ked programujes oddelene, cize zvlast php a zvlast html, nemas problem prerobit validitu, celu SEO politiku.

vyhod je neurekom...
Napísať odpoveď