[PHP] Logowanie, i plik z danymi

0

Witam
Mam dwa pytania:

  1. Czy to bezpieczne trzymanie danych, typu dane do logowania do bazy danych jako zmiennych w pliku *.php a potem includowania go na początku skryptów i wykorzystywanie tych danych? Czy to nie jest niebezpieczne??

  2. Prosze sprawdzić mi ten skrypt logowania:

if ($_SESSION['myself']<>substr($_SERVER['DOCUMENT_ROOT'],0,-1).dirname($_SERVER['PHP_SELF']))
	unset($_SESSION['myself']);

if ((!isset($_SESSION['login']) || !isset($_SESSION['id']) || !isset($_SESSION['name']) || !isset($_SESSION['level']) || !isset($_SESSION['myself'])) && $type<>'login')

	header ("Location: ".$_SERVER['PHP_SELF']."?go=admin&type=login");





if (isset($_SESSION['login']) && !isset($type))

	header ("Location: ".$_SERVER['PHP_SELF']."?go=admin&type=info");

if ($type=='login') {

	echo "<h2>LOGOWANIE</h2><hr align='left' style='width:80%'><br><br>";

	if (isset($_SESSION['error'])){

		echo $_SESSION['error'].'<br>';

		unset($_SESSION['error']);

	}



	(!isset($_SESSION['login']) || !isset($_SESSION['id']) || !isset($_SESSION['name']) || !isset($_SESSION['level']) || !isset($_SESSION['myself'])) or die ('<a id="great">Jeste¶ ju¿ zalogowany!</a><META HTTP-EQUIV="Refresh" CONTENT="2; URL='.$_SERVER['PHP_SELF'].'?go=admin&type=info">'.drawDesign(false,false,true));



	if (isset($_POST['login'])) {

		$search = "SELECT * FROM `users` WHERE `login`='".addslashes($_POST['login'])."'";

		$wykonaj = mysql_query($search);




		while($wiersz = mysql_fetch_array($wykonaj)){
			$spr=1;

			if (sha1($_POST['pass'])==$wiersz['pass']){
				$_SESSION['id']=$wiersz['id'];
				$_SESSION['login']=$wiersz['login'];

				$_SESSION['name']=stripslashes($wiersz['name']);

				$_SESSION['level']='1111111111';
				$_SESSION['myself']=substr($_SERVER['DOCUMENT_ROOT'],0,-1).dirname($_SERVER['PHP_SELF']);

				header ("Location: ".$_SERVER['PHP_SELF']."?go=admin&type=info");

			}else {

				$_SESSION['error']= '<a id="error">B³êdne has³o!</a>';

				header ("Location: ".$_SERVER['PHP_SELF']."?go=admin&type=login");

			}
		}
		
		if ($spr<>1) {

			$_SESSION['error']= '<a id="error">B³±d logowania, spróbuj ponownie</a>';

			header ("Location: ".$_SERVER['PHP_SELF']."?go=admin&type=login");

		}

	}ELSE{

		echo '

		<form method="post">

		<table border="0">

			<tr><td><b>Login: </b></td> <td><input type="text" name="login" class="inputbox" size="15"><br></td></tr>

			<tr><td><b>Has³o: </b></td> <td><input type="password" name="pass" class="inputbox" size="15"></td></tr>

			<tr><td>&nbsp</td></tr>

			<tr><td colspan="2" style="text-align:right"><button name="submit" value="Loguj" type="submit">Loguj</button></td></tr>

		</table>

		<br>



		</form>';

	}

}

Chodzi czy tu też nie ma możliwości jakiegoś włamania.

//pozdrawiam pinokio999

0
  1. nie jest to niebezpieczne w przypadku, gdy odpowiednio zablokujesz dostep do folderu w ktorym znajduja sie te dane osobom, ktore tego dostepu nie powinny miec

  2. addslashes dodaje slasze przed znakami specjalnymi, wiec jezeli chodzi o sql injection, to chyba bezpieczny sposob

0

Tzn to mój skrypt. Ale jak komus stronę robiłem, to często ktoś mu się prawdopodobnie włamywał, lub coś w ten deseń.. i nie wiem którędy. A jakby na końcu pliku z danymi umieścić break;?? Może to coś da? Choć wydaje mi się że to jakaś wina skryptu..

0

Kiedyś zrobiłem serwis www bez żadnej wiedzy o zabezpieczeniach i mogę Ci podać podstawowe dziury, które przeważnie się robi. Ale mowa o tym była już nie raz na formu.

  1. Logowanie: Zapisujesz tylko ID sesji w cookie a resztę danych trzymasz w bazie. Broń boże nie zapisuj id użytkownika czy loginu w ciastku.

  2. Sprawdzanie poprawności danych w formularzach: Trzeba zablokować umieszczanie na stronie jakichkolwiek skryptów, czyli usuwamy wszystkie TAGI z wprowadzanych tekstów

  3. Includowanie stron. Nigdy nie pisz tak: include($_GET['go']); Chyba, że wcześniej sprawdzisz poprawność danych w zmiennej $_GET['go'].

  4. W formularzach gdzie użytkownik będzie miał możliwość wrzucania plików, zablokuj niepożądane typy, takie jak JS, PHP i inne. Jeśli ma być wrzucanie obrazków to tylko udostępnij rozszerzenia GIF, PNG, JPEG itd. Oczywiście ustawić trzeba odpowiedni MIME.

To chyba tyle z takich podstawowych zagadnień. Po więcej informacji odsyłam do forum.

0

dzięki za pomoc. Przerobie skrypt wg Twoich rad
Pozdrawiam

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.