Θα χρησιμοποιηθούν για τόσα πολλά spam στο γραμματοκιβώτιό μου ότι ήμουν καθημερινές δαπάνες περισσότερο χρόνο για τη διαγραφή Στη συνέχεια είχα την προσθήκη νέου περιεχομένου, τη διατήρηση χώρων, ή για την εκκίνηση νέων χώρων σε συνδυασμό (τυπική ιστορία δεξιά). Ορισμένα από spam ιστοσελίδα σας δεν είναι να προλαμβάνονται, ή, που μπορεί να προληφθεί, αλλά σε βάρος της χρηστικότητας και / ή η καλή πληροφόρηση να εμπλακεί στα "κακά πράγματα", όπως καλά.
Δεν υπάρχει αμφιβολία, εάν είστε σοβαροί για την ανάπτυξη web είστε πρόκειται να δημιουργηθεί και να αλληλεπιδρά με μορφές σε τακτική βάση. Ειδικά με αυτό το νέο Web 2.0 έχει κάθε στάση ... GEE Wiz, τι είναι αυτό;
CAPTCHA
CAPTCHA είναι το νούμερο ένα μέθοδο οι περισσότεροι άνθρωποι χρησιμοποιούν σήμερα για την αποφυγή spam. Τι είναι;
"Μια CAPTCHA είναι μια πρόκληση απάντηση δοκιμής που χρησιμοποιούνται σε υπολογιστές για να ελέγξουμε αν ο χρήστης είναι ανθρώπινο. Ένα κοινό είδος CAPTCHA που χρησιμοποιούνται σε ιστοσελίδες που απαιτεί ότι ο επισκέπτης του είδους τα γράμματα και οι αριθμοί των στρεβλή εικόνα. Η μέθοδος αυτή βασίζεται στο γεγονός ότι είναι δύσκολο για τους υπολογιστές για να εξαγάγετε το κείμενο από την εικόνα, ενώ είναι πολύ εύκολο για τους ανθρώπους. "- Captchacreator.com
Εδώ θα λίγους πόρους σενάρια έτσι θα είστε σε θέση να εφαρμόσουν τη λειτουργικότητα σε δικές σας μορφές:
Escape δεδομένα - πρόληψη ενέσεις SQL
Capcha είναι usless αν είστε αφήνοντας απροστάτευτο το έντυπό σας από επίθεση. Θυμηθείτε να φίλτρο μετά strings με addslashes () ή mysql_real_escape_string ().
Επίσης ρίξτε μια ματιά σε αυτές τις λειτουργίες για άλλα παρόμοια είδος των ελέγχων που μπορεί να είναι χρήσιμες:
- htmlspecialchars () - αποδράσεις τους εξής χαρακτήρες: &,',",>,< ... Αυτό είναι το σύμβολο, μόνη προσφορά, διπλά τα λόγια του, λιγότερο από, και μεγαλύτερη από σύμβολα.
- strip_tags () - Λωρίδες όλα HTML και PHP κώδικα από τη δεδομένη συμβολοσειρά.
- htmlentities () - Μετατρέπει όλους τους χαρακτήρες με τους φορείς HTML ισοδύναμο (αυτή είναι η μεγαλύτερη έκδοση του συνόλου των htmlspecialchars).
- urlencode () - κωδικοποιεί το URL να περάσει χορδές σε μια μέθοδο GET. Όπως ανέφερα, δεν χρησιμοποιούν GET με μορφές. Αυτό είναι χρήσιμο όταν είστε χρήστης περνώντας μεταβλητές που εισάγονται για άλλους λόγους.
Θυμηθείτε, αφού μετατρέπουν τα δεδομένα έτσι, με μία από τις παραπάνω λειτουργίες, μπορείτε να αναιρέσετε για την αναγνωσιμότητα και εξόδου, χρησιμοποιώντας την αντίστροφη λειτουργία. Urlencode (), για παράδειγμα, έχει urldecode () για να επουλώσουν τις ενέργειές της ώστε να μπορείτε να ξεκινήσετε τη χρήση του ως string θα είχατε πριν από την κωδικοποίηση.
Ελέγξτε αίτηση μέθοδος
Ρίξε μία δήλωση, αν γύρω από τον υπάρχοντα επεξεργαστή μορφή που ελέγχει αν τα δεδομένα προέρχονται από το GLOBALS μετά μεταβλητή. Αν δεν συμβαίνει αυτό, τότε ο χρήστης δεν αποκτά πρόσβαση σας έντυπο με τον τρόπο που έχουν σχεδιαστεί να χρησιμοποιηθεί.
-
<?php -
if ( $_SERVER [ ‘REQUEST_METHOD’ ] == ‘POST’ ) { -
//typical form processes -
} else { -
echo "The form can not be used like that" ; -
} -
?> - Κατεβάστε τον κωδικό: 0305spamrequestmethod.txt
Αλλαγή σε αυτή GET Αν χρησιμοποιείτε ότι αντί. Ωστόσο, θα ήθελα να σας συστήσει υψηλής δεν χρησιμοποιούν ποτέ την ίδια μέθοδο, όπως είναι πιο ανασφαλείς.
Ελέγξτε αίτηση Πηγή
Θα πρέπει επίσης να ελέγξετε για να δείτε αν η αίτηση προέρχεται από το δικό σας διακομιστή. Πρόκειται για μια πολύ συνηθισμένη μέθοδος μορφή κακοποίησης που δεν σημαίνει κατ 'ανάγκη θα πρέπει να λαμβάνουν spam. Αν είστε server γίνεται όλο και πολλά μηνύματα αναπήδησε στην προεπιλεγμένη email σας μπορεί να έχει κάποιος κάνει κατάχρηση του δικτυακού σας τόπου με αυτό τον τρόπο.
-
<?php -
$source = $_SERVER [ ‘HTTP_HOST’ ] ; -
//or if you want to detect just the domain you can use a regular expression to filter it. -
$source = ereg_replace ( "^(www.)?([^.] ).[^.] $" , " \\ 2" , $_SERVER [ ‘HTTP_HOST’ ] ) ; -
if ( $source !== "robmalon.com" ) { -
echo "you are illegally accessing this script" ; -
} else { -
//typical form processes -
} -
//The referrer should also be from your own domain…Likewise, if there is no referral then the user obviously isnt using your form correctly (so we dont have to check for that). -
//Note: stristr() searches for the first occurrence of a string inside another string. -
if ( stristr ( getenv ( "HTTP_REFERER" ) , $source ) ) { -
//typical form processes -
} else { -
echo "you are illegally accessing this script" ; -
} -
?> - Κατεβάστε τον κωδικό: 0305spamhostsource.txt
Χρησιμοποιώντας τακτική εκδήλωσης για την επικύρωση των δεδομένων
Μου αρέσει να ελέγχει τα στοιχεία χρησιμοποιώντας preg_match (ή οποιαδήποτε από τις λειτουργίες κανονική έκφραση). Αυτή η μέθοδος σκοτώνει πολλά πουλιά με μια πέτρα. Γιατί να γράψω διαφορετικά καθήκοντα για να ελέγξουμε αν ένα string είναι άδειο, τότε μια άλλη περίπτωση που επιτρέπει αριθμούς, και άλλο αν επιτρέπει άλφα χαρακτήρες, και ένα άλλο σε συγκεκριμένα το μήκος του πεδίου, και ένα άλλο ... παίρνετε το σημείο.
if (! preg_match ("/^[ A-z0-9] (5,15 }$/", όνομα $)) $ σφάλμα .= "<li class=\"errors\"> Το Όνομα τομέα μπορούν να περιέχουν μόνο γράμματα και αριθμούς (δεν υπάρχουν κενά) και μπορεί να παραταθεί έως 15 χαρακτήρες. </ li> "?
Στην preg_match είμαι έλεγχο ότι το όνομα τομέα που περιέχει μόνο αλφαριθμητικούς αξίες (case-insensitive) και πρέπει να είναι τουλάχιστον 5 έως 15 χαρακτήρες. Αν δεν πληρούν αυτές τις προδιαγραφές κατάλληλο κείμενο προστίθεται στο $ λάθους.
Χρησιμοποιώντας "[μεταβλητή] [dot] [ισούται] [κείμενο]" με αυτόν τον τρόπο που μου επιτρέπει να διατηρεί μια συνεχή μεταβλητή που είμαι με την προσθήκη. Θα μπορούν στη συνέχεια ελέγξτε αν $ λάθους περιέχει όλα τα δεδομένα πριν από το σενάριό μου κάνει καμία σημαντική ερωτήματα. Αν υπάρχουν λάθη μπορείτε να φτύνουν τους επαναλαμβάνοντας $ λάθος και να ζητήσει από το χρήστη για τη διόρθωσή τους. Τότε χρήση CSS να στυλ μου σφάλματα τα οποία μπορείτε να δείτε με class = \ "σφάλματα \".
Οι τακτικές εκφράσεις προκλητικά έχουν μια καμπύλη μάθησης για τους αλλά είναι ένα από τα καλύτερα εργαλεία που μπορεί να συμβάλει στην απλούστευση της ζωής σας σε διάφορες καταστάσεις. Θα μπω σε περισσότερες λεπτομέρειες για τους στον δρόμο, αλλά για τώρα είναι να θέλει να αγοράσει ένα βιβλίο ή να κάνετε κάποια Googling.
Η μη τεχνική πάλι
-Εφαρμογή ενός CAPTCHA script.
-Escape καθέτους (και άλλα κακά χαρακτήρες).
-Ελέγξτε αν τα δεδομένα που έρχονται στην ιστοσελίδα σας, χρησιμοποιώντας τη σωστή μέθοδο.
-Ελέγξτε αν η αίτηση προέρχεται από το δικό σας διακομιστή.
-Ελέγξτε τα δεδομένα χρησιμοποιώντας μια κανονική έκφραση.
Αυτή είναι μόνο η κορυφή του παγόβουνου για όσα μπορώ να σας πω σχετικά με το spam. Thats γιατί έχω αποφάσισε να κάνει μια μίνι σειρά του. Κατά τις επόμενες εβδομάδες θα σας φέρνουν πιο λεπτομερείς τρόπους Ασχολούμαι με το spam. Σχόλιο κάτω ή στο email μου για τη δική σας spam μεθόδων πρόληψης. Εάν πρόκειται για νέα ή μοναδική τεχνική που θα μου post σε ένα blog μέλλον μαζί με μια σύνδεση πίσω στο blog σας. Απλά γράψτε στα σχόλια κατωτέρω και περιλαμβάνουν τη διεύθυνση URL σας στην ιστοσελίδα τομέα.





































Απλά μου ήρθε στο μυαλό ... για τη δημιουργία αυτών των καταστάσεων, αν με πεθαίνουν () δήλωση μπορεί να είναι πιο εύκολη για έναν γρήγορο και βρώμικο τρόπο. Ποια είμαι βέβαιος ότι οι περισσότεροι από εσάς τουλάχιστον για τώρα θα θέλουν να quickfix μόνο στοίχημα in. να το έχουμε κατά νου ... Κάτι σαν αυτό:
εάν ($ _SERVER [ 'REQUEST_METHOD']! == 'POST') (die ( "Η μορφή δεν μπορεί να χρησιμοποιείται όπως το ότι")?)
Μπορείτε να βάλετε ότι πουθενά στην αρχή μιας δέσμης ενεργειών για να έχουν αποτέλεσμα χωρίς να ανησυχείτε για υπάρχοντα κώδικα πάρα πολύ.