Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bezpieczeństwo łączenia się z MySQL
WojtasSP320
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 13
Dołączył: 13.08.2008
Skąd: Chełmno

Ostrzeżenie: (0%)
-----


Witam!

Mam pytanie odnośnie bezpieczeństwa. Piszę aktualnie aplikację w której BARDZO zależy mi na bezpieczeństwie.

Generalnie w panelu admina robię coś takiego:

  1. Sprawdź czy user jest zalogowany
  2. Jeśli tak to połącz z bazą (łączy się skrypt znajdujący się poza drzewem www z uprawnieniami 400) i zapisz połączenie do globalnej zmiennej $con
  3. W przeciwnym wypadku przekieruj, 403, die i w ogóle umrzyj.
  4. Potem dzieje się cały skrypt strony i na końcu (wiem, że nie muszę) robię mysql_close($con)
Moje pytanie brzmi: czy łącząc się w ten sposób (łączenie się na początku, przetrzymywanie połączenia w zmiennej globalnej, trzymanie przez cały skrypt otwartego połączenia) w jakiś wyraźny sposób niesie ze sobą zagrożenie i obniża bezpieczeństwo skryptu niż w wypadku, gdybym co chwila otwierał połączenie, wykonywał zadania na bazie i zamykał za sobą(IMG:style_emoticons/default/questionmark.gif)

Z góry dzięki za jakiekolwiek info.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
WojtasSP320
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 13
Dołączył: 13.08.2008
Skąd: Chełmno

Ostrzeżenie: (0%)
-----


Na początku każdej podstrony w panelu admina jest coś takiego:

  1. require('../autoryzacja.php');
  2. require('../connect_db.php');


Tak wygląda autoryzacja:

  1. <?php
  2. #Sprawdzam status zalogowania usera
  3. if (!isset($_SESSION['user_status']) || $_SESSION['user_status'] != 'Logged')
  4. {
  5. header('HTTP/1.1 403 Forbidden');
  6. header('Location: ../error/403.html');
  7. die('403 Forbidden');
  8. }
  9.  
  10. #Sprawdzam, czy sesja nie jest "podstawiona"
  11. if (!isset($_SESSION['session_check']))
  12. {
  13. $_SESSION['session_check'] = true;
  14. }
  15.  
  16. #Sprawdzam, czy IP usera to to samo co twórcy sesji
  17. if (!isset($_SESSION['user_ip']) || $_SESSION['user_ip'] != $_SERVER['REMOTE_ADDR'])
  18. {
  19. $_SESSION['user_ip'] = $_SERVER['REMOTE_ADDR'];
  20. }
  21. ?>


Tak wygląda connect_db:
  1. <?php
  2. global $con;
  3. require('config.php'); //Ten plik przypisuje zmiennym $host, $user itd odpowiednie wartości
  4. $con = mysql_connect($host,$user,$password);
  5. if (!$con) {die('Błąd');}
  6. if (!mysql_select_db('sklep')) {die('Błąd');}
  7. mysql_set_charset('utf8',$con);
  8.  
  9. unset($password);
  10. unset($user);
  11. unset($host);
  12. unset($database);
  13. ?>


Dodam tylko, że sesje przechowuję w bazie danych ale to osobna bajka...

Ten post edytował WojtasSP320 25.11.2009, 13:27:55
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 03:01