Mam taki skrypt logowania opartego o sesje - moje pytanie brzmi: Czy taki skrypt jest bezpieczny?:
<?php function DodawanieDoBazy($ciag) { $wynik = str_replace(array("\"", "'", "\\", '\"', "\'", "<", ">", " "), array(""", "'", "\", """, "'", "<", ">", " "), $wynik); $wynik = preg_replace(array("/\=/","/\#/","/\sOR\s/"), "", $wynik); return $wynik; } if(isset($_POST["logowanie"]) && isset($_POST['login']) && isset($_POST['login'])) { $logon_failure = ''; if(empty($_POST["login"])) { $logon_failure .= "Wpisz login<br />"; } if(empty($_POST["password"])) { $logon_failure .= "Wpisz has³o<br />"; } $login = DodawanieDoBazy($_POST["login"]); $password = md5($_POST["password"]); if(empty($logon_failure)) { if(!mysql_fetch_row(mysql_query("SELECT * FROM users WHERE login='".$login."' AND pass='".$password."'"))) { $logon_failure .= "Nieprawid³owy login lub has³o"; } elseif(!mysql_fetch_row(mysql_query("SELECT * FROM users WHERE login='".$login."' AND activity='1'"))) { $logon_failure .= "Konto jest nieaktywne"; } if(empty($logon_failure)) { $_SESSION["login"] = $login; $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; $_SESSION['browser'] = $_SERVER['HTTP_USER_AGENT']; } else { echo $logon_failure; } } else { echo $logon_failure; } } echo "<div id=\"menu\">"; if(UZYTKOWNIK) { echo "Zalogowany jako ".$_SESSION["login"]; } else { ?> <form action="" method="post" id="logowanie"> <fieldset> <dl> <dt>Login</dt> <dd><input type="text" name="login" id="login" value="Login" onblur="if(this.value=='') this.value='Login';" onfocus="if(this.value=='Login') this.value='';" /></dd> <dt>Has³o:</dt> <dd><input type="password" name="password" id="password" value="Has³o" onblur="if(this.value=='') this.value='Has³o';" onfocus="if(this.value=='Has³o') this.value='';" /></dd> </dl> </fieldset> <div style="float:right;"><input type="submit" name="logowanie" value="Zaloguj siê" onclick="WyslijFormularz('logowanie'); return false;" /></div> </form> <img src="http://test.php.pl/www/gfx/login_loading.gif" id="ladowanie" alt="" style="display:none;float:left;" /> <div id="wynik"></div> <p><a href="/rejestracja/">Rejestracja</a> <br /> <a href="/przypomnij/">Przypomnij has³o</a> <? } ?> </div>
Wszystkie sugestie na temat polepszenia mile widziane
