Bezpieczne polaczenie z zew. programem PC, przesylanie danych, hasla do bazy w Visual Basic

0

Witam.

Zastanawiam sie nad najlepszym rozwiazaniem bezpiecznego przesylania danych, glownie na mysli mam logowanie, ktore musze zrealizowac w zew. programie na PC. Pisze w VB2008 i nie moge polaczyc sie bezposrednioz z baza rowniez z wzgledow bezpieczenstwa, takie polaczenia z zew. sa zazwyczaj blokowane. Dane jakie musze przeslac to login, haslo , tutaj najbardziej mi zalezy na bezpieczenstwie, a potem kilka innych, ale jednak mniej waznych z wzgledow bezpieczenstwa, wartosci tekstowych. Na stronie loguje sie loginem i haslem, haslo w md5 i porownanie z baza. Wszytskie dane aktualnie wysylane sa za pomoca metody POST, ktora nie jest zla. na razie skrypt zapewnia mi jedynie komunikacje do testow. Generujac odpowiednie zapytania, otrzymuje odpowiednie wyniki, ktore pobieram i wyswietlam w programie. Zapewne bede chcial dodatkowo generowac jakis klucz potwierdzajacy, albo w programie, albo przypisany do konkretnego usera, w celu 1. statystyki 2. bezpieczenstwa. Niektore zadania, takie jak np. wyslanie zmiennej [i]$greetings[/i] mozliwe beda tylko po zalogowaniu, tutaj albo cookie, czy jakas sesja, albo kazdorazowe przesylanie hasla, ktore i tak bedzie trzymane w programie, w jakis sposob zakodowane.

W jaki sposob zrealizowac najbezpieczniej takie zadania, jednoczesnie nie martwiac sie o wstrzykiwanie zapytan SQL, i inne niebezpieczenstwa.

Aktualny kod skryptu

<?php
	require "connection.php"; //SQL connection file
	connection(); 
	include("stats.php");

	$login = $_POST['login']; //login and password
	$list = $_POST['list']; // song list
	$program = $_POST['program']; // program and song status
	$greetings = $_POST['greetings']; // greetings
	$schedule  = $_POST['schedule']; // schedule
	
	//login
	$username = $_POST['username'];
	$password = $_POST['password'];
	
	//song list
	$date = $_POST['date'];
	$presenter = $_POST['presenter'];
	$song = $_POST['song'];
	
	//status
	// $presenter = $_POST['presenter'];
	$program = $_POST['program'];
	
	// greetings
	// $username = $_POST['username'];
	// $id_greetings
	$id_user = $_POST['id_user'];
	$time = $_POST['time'];
	$greetingstext = $_POST['greetingstext'];
	$status = True;

	//firefox
	$firefox = $_GET['firefox'];
	
	//schedule
	
	
	/*
	
	$firefox = "1";
	$username = "user1";
	$password = "pass1";
	
	$list = "1";
	$date ="2011-03-03";
	
	$schedule = "1";
	$program = "1";*/
	
	
	

	if (!empty($login)) {
		$query = mysql_query("SELECT * FROM user WHERE username='$username' AND password='$password'") 
		or die('Query error');
			if(mysql_num_rows($query) > 0)
				while($l = mysql_fetch_assoc($query)) { 
					echo "ID: ".$l['id_user']."<br />";
					echo "User: ".$l['username']."<br />";
					echo "Password: ".$l['password']."<br />";
				}
	}
	elseif (!empty($list)) {
		$query = mysql_query("SELECT * FROM song WHERE date='$date'")
		or die('Query error');
			if(mysql_num_rows($query) > 0)
				while($l = mysql_fetch_assoc($query)) { 
					$i += 1;
					
					echo "Number: ".$i."<br />";
					echo "Presenter: ".$l['presenter']."<br />";
					echo "Song: ".$l['song']."<br />";
					echo "<br />";
				}
	}
	elseif (!empty($program)) {
		echo "Presenter: ".$sc[template1]."<br />";
		echo "Song: ".$text."<br />";
		echo "Quality: ".$bit1."<br />";
		echo "Lisen: ".$sc[template3]."<br />";
		echo "Max: ".$max1."<br />";
	//	echo "Rekord: ".$peak1."<br />";
	}
	elseif (!empty($firefox)) {
		echo "Gra: ".$sc[template1]." Utwor: ".$text.".";
	}
	elseif (!empty($greetings)) {
		$query = mysql_query("INSERT INTO greetings SET id_user='$id_user', time='$time', greetings='$greetings', status='$status'")
		or die('Query error');
		if($query) echo "Add record."; 
				else echo "Error."; 
	}
	elseif (!empty($schedule)) {
		$query = mysql_query("SELECT * FROM schedule")
		or die('Query error');
			if(mysql_num_rows($query) > 0)
				while($s = mysql_fetch_assoc($query)) { 
					$i += 1;
					
					echo "Id: ".$s['id_schedule']."<br />";
					echo "Start: ".$s['start']."<br />";
					echo "Finish: ".$s['finish']."<br />";
					echo "Presenter: ".$s['presenter']."<br />";
					echo "Name: ".$s['name']."<br />";
					echo "Link: ".$s['link']."<br />";
					echo "<br />";
				}
	}
	else {	
		echo "No data";
	}
?>

 
0
bercow napisał(a)

(...)
W jaki sposob zrealizowac najbezpieczniej takie zadania, jednoczesnie nie martwiac sie o wstrzykiwanie zapytan SQL, i inne niebezpieczenstwa.
(...)

Odp: Pisząc bezpieczny i spójny kod, który będzie odporny na Inject SQL.
Zadaj konkretne pytanie, dostaniesz konkretną odpowiedź.

0

Wiem ze https wiem, ze mysql_real_escape_string, wiem, ze pisac bezpieczny kod, ale moze bedzie lepsze niz realizowanie w tego taki sposob ktory obecnie przyjelem. Przeyslanie danych do bazy z zew. aplikacji, nie laczac sie bezposrednio z baza.

Moze opisze co chce zrealizowac, chodzi o przesylanie loginu hasla, wysylanie pozdrowien gdy user zalogowany, sciaganie aktualnego utworu, alej playlisty, ogolnie aplikacja pobierajace dane o radiu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1