
Ψάχνω για ένα εργαλείο που μπορεί να ανιχνεύσει κακόβουλο αιτήματα (όπως είναι οι προφανείς ένεση SQL παίρνει ή θέσεις) και θα απαγορεύσει αμέσως την IP διεύθυνση του αιτούντος / προσθέσετε σε μια μαύρη λίστα. Γνωρίζω ότι σε έναν ιδανικό κόσμο μας κώδικα θα πρέπει να είναι σε θέση να χειριστεί τέτοια αιτήματα και να τα επεξεργάζονται ανάλογα, αλλά υπάρχει πολλή αξία σε ένα τέτοιο εργαλείο, ακόμα και όταν ο χώρος είναι ασφαλής από αυτού του είδους τις επιθέσεις, καθώς μπορεί να οδηγήσει σε εξοικονόμηση εύρους ζώνης, την πρόληψη bloat των analytics, κλπ


Στην ιδανική περίπτωση, Ψάχνω για ένα cross-platform ( `LAMP/.NET`λύση) που βρίσκεται σε υψηλότερο επίπεδο από ό, τι στη στοίβα τεχνολογίας? ίσως στο web-server ή το επίπεδο hardware. Δεν είμαι σίγουρος αν αυτό υπάρχει, όμως.


Είτε έτσι είτε αλλιώς, θα ήθελα να ακούσω σχόλια της κοινότητας, ώστε να μπορώ να δω ποιες είναι οι επιλογές μου θα μπορούσε να είναι σε σχέση με την εφαρμογή και την προσέγγιση.

 
Η κάλυψη της SQL Injection και άλλα κακόβουλα αιτήματα Web
==========================================================



Το πρόβλημα με ένα γενικό εργαλείο είναι ότι είναι πολύ δύσκολο να καταλήξουμε σε ένα σύνολο κανόνων που θα ταιριάζει μόνο ενάντια σε μια πραγματική επίθεση.


SQL λέξεις-κλειδιά είναι όλες οι αγγλικές λέξεις, και μην ξεχνάτε ότι το κορδόνι



```
 DROP TABLE users;

```

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


Η μόνη λογική επιλογή είναι να αποστειρώνουν την είσοδο πριν από ποτέ να περνά στη βάση δεδομένων σας, αλλά να το δώσετε παρ 'όλα αυτά. Διαφορετικά είναι πολλά απόλυτα φυσιολογικό, μη κακόβουλους χρήστες πρόκειται να πάρει απαγορευτεί από το site σας.

 

Μια μέθοδος που θα μπορούσε να λειτουργήσει για κάποιες περιπτώσεις θα ήταν να πάρει το SQL συμβολοσειρά που θα τρέξει αν χρησιμοποιηθεί αφελώς τα δεδομένα της φόρμας και να το δώσετε σε κάποιο κώδικα που υπολογίζει τον αριθμό των δηλώσεων που πραγματικά θα εκτελεστεί. Αν είναι μεγαλύτερη από το αναμενόμενο, ο αριθμός, τότε υπάρχει μια αξιοπρεπή ευκαιρία ότι η ένεση έγινε προσπάθεια, ειδικά για τους τομείς που είναι πιθανό να περιλαμβάνουν χαρακτήρες ελέγχου, όπως το όνομα χρήστη.


Κάτι σαν ένα κανονικό πλαίσιο κειμένου θα είναι λίγο πιο δύσκολο δεδομένου ότι αυτή η μέθοδος θα είναι πολύ πιο πιθανό να επιστρέψει false positives, αλλά αυτό θα ήταν μια αρχή, τουλάχιστον.

 

Ένα μικρό πράγμα που πρέπει να θυμάστε: Σε ορισμένες χώρες (δηλαδή το μεγαλύτερο μέρος της Ευρώπης), οι άνθρωποι δεν έχουν στατικές διευθύνσεις IP, οπότε μαύρη λίστα δεν θα πρέπει να είναι για πάντα.

 

Τώρα που το σκέφτομαι, ένα Bayesian φίλτρο παρόμοια με αυτές που χρησιμοποιούνται για να εμποδίσουν την ανεπιθύμητη αλληλογραφία θα μπορούσε να λειτουργήσει αξιοπρεπώς πάρα πολύ. Αν έχεις μαζί μια σειρά από κανονικό κείμενο για κάθε πεδίο και ένα σύνολο SQL ενέσεις, μπορεί να είστε σε θέση να εκπαιδεύσει σε επιθέσεις ένεση σημαία.

 

Σας σχεδόν κοιτάζοντας το λάθος τρόπο, δεν εργαλείο 3party που δεν γνωρίζει τις μεθόδους εφαρμογής / ονοματοδοσία / data / περιοχή σας πρόκειται να πρόκειται να είναι σε θέση να σας προστατεύσει απόλυτα.


Κάτι σαν πρόληψη SQL ένεση είναι κάτι που πρέπει να είναι στον κώδικα, και το καλύτερο που γράφτηκε από τους ανθρώπους που έγραψε το SQL, γιατί είναι αυτοί που θα γνωρίζουν τι πρέπει / shouldnt να είναι σε αυτούς τους τομείς (εκτός και αν το έργο σας έχει πολύ καλή docs )


Το δικαίωμά σας, όλα αυτά έχει γίνει στο παρελθόν. Μπορείτε dont πολύ να ανακαλύψουμε εκ νέου τον τροχό, αλλά εσείς πρέπει να χαράξει ένα νέο, λόγω ενός διαφορές στις διαμέτρους άξονα του καθενός.


Αυτό δεν είναι μια σταγόνα-in και να τρέξει το πρόβλημα, αν πραγματικά χρειάζεται να είναι εξοικειωμένοι με το τι ακριβώς SQL ένεση για να μπορέσετε να το αποτρέψει. Είναι ένας ύπουλος πρόβλημα, γι 'αυτό χρειάζεται εξίσου ύπουλες προστασίας.


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


* [SQL ένεση](http://en.wikipedia.org/wiki/SQL_injection)
* [SQL Injection επιθέσεων από το Παράδειγμα](http://www.unixwiz.net/techtips/sql-injection.html)


Και ενώ αυτό isnt αρκετά ανιχνευτής 100%, αυτό θα «σας δείξει το φως» στο υπάρχον πρόβλημα σε υπάρχοντα κώδικα σας, αλλά όπως και με webstandards, μην σταματήσετε την κωδικοποίηση τη στιγμή που θα περάσει αυτό το τεστ.


* [Αξιοποίηση-Me](http://www.securitycompass.com/exploitme.shtml)

 

Η Oracle έχει πήρε ένα [online σεμινάριο σχετικά με το SQL Injection](http://st-curriculum.oracle.com/tutorial/SQLInjection/index.htm) . Ακόμα κι αν θέλετε μια έτοιμη λύση, αυτό μπορεί να σας δώσει μερικές συμβουλές για το πώς να το χρησιμοποιήσετε καλύτερα να υπερασπιστεί τον εαυτό σας.

 

Μία από τις περιοχές μου πρόσφατα hacked μέσω SQL Injection. Πρόσθεσε ένα σύνδεσμο σε έναν ιό για κάθε πεδίο κειμένου στην db! Η λύση ήταν να προσθέσετε κάποιο κώδικα ψάχνει για τον SQL λέξεις-κλειδιά. Ευτυχώς, έχω αναπτύξει σε ColdFiusion, έτσι ώστε ο κώδικας βρίσκεται στο Application.cfm το αρχείο μου που εκτελείται στην αρχή κάθε ιστοσελίδας και να εξετάζει όλες τις μεταβλητές URL. Wikipedia έχει μερικές καλές συνδέσεις με βοηθήσει πάρα πολύ.

 

Ενδιαφέρουσες πώς αυτή υλοποιείται χρόνια αργότερα από το google και να αφαιρέσετε το URL όλοι μαζί, προκειμένου να αποτρέψει τις επιθέσεις XSS και άλλες κακόβουλες acitivites

 