Ασφάλεια σε login script

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
odd
Δημοσιεύσεις: 1
Εγγραφή: 08 Φεβ 2010 17:07

Ασφάλεια σε login script

Δημοσίευση από odd » 08 Φεβ 2010 21:20

Γεια σε όλους και καλώς σας βρήκα.

Όντας αρχάριος στο προγραμματισμό, προσπαθώ να φτιάξω ένα login script με sessions.

Το κομμάτι που με απασχολεί είναι η ασφάλεια. Από όσο έχω καταλάβει με δύο τρόπους μπορεί ένας κακόβουλος χρήστης να πάρει τον έλεγχο.

a) δοκιμάζοντας πιθανά ζευγάρια username/pass
b) να αποκτήσει το session id ενός χρήστη που έχει κάνει ήδη login το οποίο βρίσκεται σε κάποιον temp φάκελο ή μέσω του cookie

Το (a) μάλλον λύνεται με το να έχει δικαίωμα κάποιος να κάνει login x φορές σε y χρόνο. Έτσι, για παράδειγμα, κάθε φορά που καλείται το script ελέγχου για το αν είναι σωστό το ζευγάρι u/n|pass που δίνει ο χρήστης, να κρατείται το timestamp σε ένα πίνακα και να ελέγχεται το πότε καλέστηκε το ίδιο script τη προηγούμενη φορά.

Για το (b) έχω κάποιες αμφιβολίες. Σε πολλά παραδείγματα το χειρίζονται κάπως έτσι.

Κώδικας: Επιλογή όλων

<?php

session_start&#40;&#41;;

if &#40;isset&#40;$_SESSION&#91;'HTTP_USER_AGENT'&#93;&#41;&#41;
&#123;
    if &#40;$_SESSION&#91;'HTTP_USER_AGENT'&#93; != md5&#40;$_SERVER&#91;'HTTP_USER_AGENT'&#93;&#41;&#41;
    &#123;
        /* Prompt for password */
        exit;
    &#125;
&#125;
else
&#123;
    $_SESSION&#91;'HTTP_USER_AGENT'&#93; = md5&#40;$_SERVER&#91;'HTTP_USER_AGENT'&#93;&#41;;
&#125;

?>
Γιατί όμως για παράδειγμα το user_agent ή η ip να αποθηκεύονται στο session και όχι στη βάση σε έναν πίνακα πχ who_is_online;

Αν τα αποθηκεύω στη βάση δεν θα είναι ποιο ασφαλή τα δεδομένα από ότι στο session;

υγ. αν υπάρχουν και άλλα ζητήματα ασφάλειας που πρέπει να προσέξω ή αν αντιμετωπίζω εντελώς λάθος το όλο θέμα, παρακαλώ να μου το επισημάνετε. Θεωρώ ότι τόσο τα δεδομένα στο session ή στο cookie για το session_id θα είναι encrypted μέσω md5 ή sha1

Ευχαριστώ.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες