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. Narazie 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
$greetings 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";*/
$query = mysql_query("SELECT * FROM user WHERE username='$username' AND password='$password'") echo "ID: ".$l['id_user']."<br />"; echo "User: ".$l['username']."<br />"; echo "Password: ".$l['password']."<br />"; }
}
$query = mysql_query("SELECT * FROM song WHERE date='$date'") $i += 1;
echo "Number: ".$i."<br />"; echo "Presenter: ".$l['presenter']."<br />"; echo "Song: ".$l['song']."<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'") if($query) echo "Add record."; }
elseif (!empty($schedule)) { $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 />"; }
}
else {
}
?>
Ten post edytował bercow 18.03.2011, 13:49:27