Τι είναι μια SQL Injection Attack / Vulnerability;
Αυτό FAQ απάντηση ήταν γραμμένο από k4thryn:
Ένα θέμα ευπάθειας SQL ένεση μπορεί να συμβεί όταν ένας κακώς-γραπτή πρόγραμμα χρησιμοποιεί το χρήστη παρέχονται δεδομένα σε μια βάση δεδομένων αναζήτησης ΧΩΡΙΣ πρώτη επικύρωση των εισροών. Αυτό είναι πιο συχνά βρέθηκαν εντός των ιστοσελίδων με δυναμικό περιεχόμενο. Υπάρχουν κάποια εξαιρετική tutorials και περιγραφικά άρθρα για το θέμα αυτό, όπως και πολλές θέσεις ευπάθεια για διαφορετικές εφαρμογές, από την πλήρη αποσιώπηση ιστοσελίδες.
Ένα απλό παράδειγμα του SQL ένεση αποτελεί βασική HTML μορφή σύνδεσης με την οποία σας παρέχει ένα όνομα χρήστη και κωδικό πρόσβασης:
<form method="post" action="process_login.php"> <input type="text" name="username"> <input type="password" name="password"> </ form>
Με δεδομένο αυτό το απόσπασμα της HTML, μπορούμε να συμπεράνουμε ότι ο ευκολότερος (και χειρότερο) τρόπο για το σενάριο "process_login.php" για την εργασία θα είναι αυτό για να κατασκευάσει και να εκτελέσει ένα αίτημα προς τη βάση δεδομένων που μοιάζει με αυτό:
"SELECT id ΑΠΟ συνδέσεις WHERE username = '$ username' και το password = '$ password' "?
Υπό τις συνθήκες αυτές, αν τις μεταβλητές "$ username" και "$ password" λαμβάνονται απευθείας από την είσοδο του χρήστη, το login script μπορεί εύκολα να εξαπάτησαν το να πιστεύει ότι ένα έγκυρο κωδικό πρόσβασης έχουν παρασχεθεί από το παιχνίδι με τη σύνταξη της δήλωσης SQL. Ας υποθέσουμε ότι η ακόλουθη συμβολοσειρά δόθηκαν ως τον κωδικό πρόσβασης:
'Ή''='
και δώσαμε "Bob", όπως το username. Μόλις οι μεταβλητές interpolated, το παραπάνω ερώτημα θα είναι κάπως έτσι:
"SELECT id ΑΠΟ συνδέσεις WHERE username = 'Bob' και τον κωδικό πρόσβασης =''ή''''= "?
Αυτό το ερώτημα θα επιστρέψει μια σειρά, διότι η τελική ρήτρα:
... ή =''''
θα αξιολογεί πάντα να ισχύει (μια κενή συμβολοσειρά είναι πάντοτε ίση με ένα κενό string).
Πρόληψη SQL Έγχυση Επιθέσεις
Οι πιο κοινές μέθοδοι για την πρόληψη αυτού του είδους του SQL ένεση vunerability είναι να ελέγχει την είσοδο του χρήστη για τις επικίνδυνες χαρακτήρες όπως η ενιαία εισαγωγικά? Και παρασκευάζονται με τη χρήση των δηλώσεων, η βάση δεδομένων που λένε ακριβώς τι πρέπει να περιμένουμε πριν από κάθε χρήστη, εφόσον τα δεδομένα είναι να περάσει αυτή.
|
Ένα θέμα ευπάθειας Διαχείρισης για Ανδρείκελα
Τελευταίες θέσεις Blog
- SourceForge έναντι Freshmeat






