wie helpt mij
Allereerst mijn bekentenis... ik heb geen ervaring met php (html redelijk) maar ik denk dat wat ik wil,dat ik daar php voor moet gebruiken.
Ik heb een site (html) waarbij een paar paginas voor een ieder zichtbaar moeten zijn maar er zullen ook een groot aantal paginas niet zichtbaar voor iedereen mogen zijn ivm privacy.
Dus denk ik dat er op de zichtbare pagina iets moet komen van login username en pssword.
Waarna men dus in het afschermde gedeelte kan komen. Dit kunnen een grrot aantal paginas zijn en men moet dus niet elke keer voor een pagina moeten inloggen.
De beveiliging moet erg goed zijn omdat er vertrouwelijke informatie op die paginas staat.
Ook moet men geen scripts kunnen bekijken of op de server wat kunnen vinden om de beveiliging te omzeilen. De authorisatie om die paginas te kunnen bekijken moet automatisch na bv 15 minuten geen actie vervallen.
Belangrijk is dat de scripts binnen html paginas verwerkt moeten worden omdat ik er met nihil kennis van php de layouts etc van de paginas niet zelf kan uitvoeren.
verder moet het admin gedeelte voor een leek te hanteren zijn.
Ik weet ik vraag nog al wat maar misschien is hier iemand die mij daar bij wil helpen.
Persoonlijk mailen mag ook dan neem ik Tel. contact op
Met vr gr. Jan
succes
Zet die bestanden in een map, beveilig het met HTACCES, is wel uitleg over te vinden.
1: Php is hier inderdaad goed te gebruiken.
2: Je zult een database nodig hebben voor de gebruikers. (mysql)
3: Kijk naar sessies.
4: Lees de gerelateerde tutorials op deze site.
@ Chris: kun je even een link erbij geven?
er zullen vast wel mensen zijn die je willen helpen maar niet voor niks omdat het zoals ik het hier lees wel een grote klus is.
damn we're good ;)
Jan:
@ Chris: kun je even een link erbij geven?
De url waar het om gaat is
www.winkeldief.info
gr jan
Maar ik zal even kijken.
Dan praat je inderdaad toch wel over redelijk geavanceerde scripts die goed beveiligd zijn. Heb je de beschikking over MySQL?
Jan:
@ Jan: ik bedoelde eigenlijk of Chris een link naar dat script of die tutorial kon geven ;-)
Maar ik zal even kijken.
Maar ik zal even kijken.
Ok bedankt voor je toelichting... maar nu je de URL kent begrijp je dus dat het een goed script moet zijn
gr Jan
Ik denk niet dat er juridisch gezien een verschil tussen zit; de privacy van iemand wordt geschonden, of dat nou achter beschermde pagina's plaatsvindt of niet.
Het voorbeeldscript dat Chris post zal wel werken, maar er zit erg weinig beveiliging op.
@ Jan: heb je al uitgezocht hoe dat juridisch zit?
chris:
Wachtwoorden plain in een database zetten...
Input niet beveiligen en rechtstreeks queryen...
Wachtwoorden in een sessie schrijven...
Geef mij, of iemand anders met een beetje verstand een link naar een werkend systeem met dat script en binnen enkele minuten is je database leeg...
Ik sluit me aan bij de mensen die je al eerder (gratis) advies hebben gegeven dat je mijnsinziens gezien de privacy gevoelige materie je zeker mijnsinziens gebruik zou moeten maken van een database!!
Zelf vraag je voor je diensten ook een vergoeding lees ik op je site dus met alle respect ik ga je niet gratis helpen.
Op mijn site is een gratis cursus over de basis php.
Dit kost je wel energie en inzet de andere kant van de medaille is dat het gratis is.
Suc6!!
Jan:
@ Kasper: inderdaad.
@ Jan: heb je al uitgezocht hoe dat juridisch zit?
@ Jan: heb je al uitgezocht hoe dat juridisch zit?
Eventueel wil ik wel wat uitzoeken, heb de boeken hier liggen...
Valt onder wet bescherming persoonsgegevens.
a.
de betrokkene voor de verwerking zijn ondubbelzinnige toestemming heeft verleend;
b.
de gegevensverwerking noodzakelijk is voor de uitvoering van een overeenkomst waarbij de betrokkene partij is, of voor het nemen van precontractuele maatregelen naar aanleiding van een verzoek van de betrokkene en die noodzakelijk zijn voor het sluiten van een overeenkomst;
c.
de gegevensverwerking noodzakelijk is om een wettelijke verplichting na te komen waaraan de verantwoordelijke onderworpen is;
d.
de gegevensverwerking noodzakelijk is ter vrijwaring van een vitaal belang van de betrokkene;
e.
de gegevensverwerking noodzakelijk is voor de goede vervulling van een publiekrechtelijke taak door het desbetreffende bestuursorgaan dan wel het bestuursorgaan waaraan de gegevens worden verstrekt, of
f.
de gegevensverwerking noodzakelijk is voor de behartiging van het gerechtvaardigde belang van de verantwoordelijke of van een derde aan wie de gegevens worden verstrekt, tenzij het belang of de fundamentele rechten en vrijheden van de betrokkene, in het bijzonder het recht op bescherming van de persoonlijke levenssfeer, prevaleert.
Gewijzigd op 20/01/2006 16:57:00 door Arjan Kapteijn
Jan:
Ik krijg wel meteen een melding van mijn popup blocker. Ik kan me voorstellen dat dit soort info inderdaad achter een log-in moet, die zo veilig mogelijk werkt.
Dan praat je inderdaad toch wel over redelijk geavanceerde scripts die goed beveiligd zijn. Heb je de beschikking over MySQL?
Dan praat je inderdaad toch wel over redelijk geavanceerde scripts die goed beveiligd zijn. Heb je de beschikking over MySQL?
De popup komt van de bezoekers teller die ik er dan af gooi.
ik heb de beschikking overMySQL
Gr Jan
Jan:
@ Kasper: inderdaad.
@ Jan: heb je al uitgezocht hoe dat juridisch zit?
@ Jan: heb je al uitgezocht hoe dat juridisch zit?
Juridisch kan dit echter daarom is beveiliging belangrijk en het daadwerkelijk plaaqtsen doe ik dus niet automatisch maar zelf handmatig anders zet iemand zijn schoonmoeder er op :-)
gr jan
authenticatie.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
session_start ();
require_once ('../db_config.php');
require_once ('security_check.php');
function check_login ($username, $password) {
$sql = "
SELECT username, password
FROM users
WHERE username = '$username'
AND password = '$password'
";
if (!($res = mysql_query ($sql))) {
trigger_error (mysql_error ());
}
else {
if (mysql_num_rows ($res) == 1) { // login correct
$sql = "
UPDATE users
SET lastlogin = NOW()
WHERE username = '$username'
AND password = '$password'
";
if (!mysql_query ($sql)) {
trigger_error (mysql_error ());
}
else {
return true;
}
}
else { // login incorrect
sleep (5); // anti brute-force regeltje
return false;
}
}
}
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
if (isset ($_GET['cmd']) && $_GET['cmd'] == 'logout') {
$sql = "
UPDATE users
SET lastlogout = NOW()
WHERE username = '".$_SESSION['username']."'";
if (!mysql_query ($sql)) {
trigger_error (mysql_error ());
}
// Unset all of the session variables.
$_SESSION = array ();
// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (isset ($_COOKIE['session_name ()'])) {
setcookie (session_name (), '', time () - 42000, '/');
}
// Finally, destroy the session.
session_destroy ();
header ('Location: http://www.jouwwebsite.nl/login/');
exit;
}
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset ($_POST['username']) && isset ($_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password'];
// sessievariabelen zetten
$_SESSION['username'] = $username;
$_SESSION['password'] = sha1 ($password);
unset ($username, $password);
}
}
if (!isset ($_SESSION['username'], $_SESSION['password'])) {
header ('Location: http://www.jouwwebsite.nl/login/');
exit;
}
if (!check_login ($_SESSION['username'], $_SESSION['password'])) {
header ('Location: http://www.jouwwebsite.nl/login/');
exit;
}
?>
session_start ();
require_once ('../db_config.php');
require_once ('security_check.php');
function check_login ($username, $password) {
$sql = "
SELECT username, password
FROM users
WHERE username = '$username'
AND password = '$password'
";
if (!($res = mysql_query ($sql))) {
trigger_error (mysql_error ());
}
else {
if (mysql_num_rows ($res) == 1) { // login correct
$sql = "
UPDATE users
SET lastlogin = NOW()
WHERE username = '$username'
AND password = '$password'
";
if (!mysql_query ($sql)) {
trigger_error (mysql_error ());
}
else {
return true;
}
}
else { // login incorrect
sleep (5); // anti brute-force regeltje
return false;
}
}
}
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
if (isset ($_GET['cmd']) && $_GET['cmd'] == 'logout') {
$sql = "
UPDATE users
SET lastlogout = NOW()
WHERE username = '".$_SESSION['username']."'";
if (!mysql_query ($sql)) {
trigger_error (mysql_error ());
}
// Unset all of the session variables.
$_SESSION = array ();
// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (isset ($_COOKIE['session_name ()'])) {
setcookie (session_name (), '', time () - 42000, '/');
}
// Finally, destroy the session.
session_destroy ();
header ('Location: http://www.jouwwebsite.nl/login/');
exit;
}
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset ($_POST['username']) && isset ($_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password'];
// sessievariabelen zetten
$_SESSION['username'] = $username;
$_SESSION['password'] = sha1 ($password);
unset ($username, $password);
}
}
if (!isset ($_SESSION['username'], $_SESSION['password'])) {
header ('Location: http://www.jouwwebsite.nl/login/');
exit;
}
if (!check_login ($_SESSION['username'], $_SESSION['password'])) {
header ('Location: http://www.jouwwebsite.nl/login/');
exit;
}
?>
security_check.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
// bescherming tegen mysql injection
function quote_smart ($value) {
if (get_magic_quotes_gpc ()) {
$value = stripslashes($value);
}
if (version_compare (phpversion (),"4.3.0") == "-1") {
return mysql_escape_string ($value);
}
else {
return mysql_real_escape_string ($value);
}
}
function check_array (&$array) {
foreach ($array as $key => $value) {
$value = quote_smart ($value);
$value = htmlspecialchars ($value);
$array[$key] = $value;
}
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
check_array ($_POST);
// print_r ($_POST);
}
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
check_array ($_GET);
// print_r ($_GET);
}
?>
// bescherming tegen mysql injection
function quote_smart ($value) {
if (get_magic_quotes_gpc ()) {
$value = stripslashes($value);
}
if (version_compare (phpversion (),"4.3.0") == "-1") {
return mysql_escape_string ($value);
}
else {
return mysql_real_escape_string ($value);
}
}
function check_array (&$array) {
foreach ($array as $key => $value) {
$value = quote_smart ($value);
$value = htmlspecialchars ($value);
$array[$key] = $value;
}
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
check_array ($_POST);
// print_r ($_POST);
}
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
check_array ($_GET);
// print_r ($_GET);
}
?>
db_config.php is om met de database te connecten, die moet je zelf even maken. Loginform met velden die als naam username en password hebben moet je ook zelf maken.
Het is zeker niet waterdicht, maar er zitten wel meer checks in dan het script uit de tutorial.