404 error: ειδοποίηση με e-mail

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

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

Απάντηση
Άβαταρ μέλους
sotiriskalathas
Δημοσιεύσεις: 8
Εγγραφή: 13 Μάιος 2011 13:51
Τοποθεσία: Trikala, Greece
Επικοινωνία:

404 error: ειδοποίηση με e-mail

Δημοσίευση από sotiriskalathas » 13 Μάιος 2011 14:33

Έφτιαξα ένα απλό script σε php και αποφάσισα να το μοιραστώ μαζί σας

Όποτε κάποιος επισκέπτης της ιστοσελίδας μου προσπαθεί να μεταβεί σε μια διεύθυνση που δεν υπάρχει, και λαμβάνει μήνυμα error 404 page not found, το script μου στέλνει ένα e-mail με το url που απέτυχε να βρεί ο επισκέπτης, την IP του, την προηγούμενη σελίδα που πλοηγήθηκε (referer page) και τον browser που χρησιμοποιεί.

Απλά φτιάξτε μια custom 404 page (ή επεξεργαστείτε την ήδη υπάρχουσα) και προσθέστε τον παρακάτω κώδικα php:

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

<?php

$my_mail = "paradeigma@email.com"; // Αλλάξτε το με την διεύθυνση e-mail που θέλετε να λαμβάνετε τα reports

$from_mail = "paradeigma@email.com"; // Αλλάξτε το με τη διεύθυνση e-mail που θέλετε να φαίνεται οτι σας αποστέλλει το report, π.χ. αν έχετε περισσότερα από ένα websites βάλτε κάθε φορά το default email του κάθε website

mail&#40;$my_mail, "404 report", "page&#58; ".$_SERVER&#91;'REQUEST_URI'&#93;." | ip&#58; ".$_SERVER&#91;'REMOTE_ADDR'&#93;." | referer page&#58; ".$_SERVER&#91;'HTTP_REFERER'&#93;." | browser&#58; ".$_SERVER&#91;'HTTP_USER_AGENT'&#93;, "From&#58; ".$from_mail&#41;;

?>
Ονομάζομαι Σωτήρης Καλαθάς και είμαι ένας ανεξάρτητος σχεδιαστής ιστοσελίδων και σύμβουλος επιχειρήσεων σε θέματα διαδικτύου. Ακολουθήστε με στο twitter: http://twitter.com/sotiriskalathas ή στο http://sotiriskalathas.gr/

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

404 error: ειδοποίηση με e-mail

Δημοσίευση από pimpogio » 16 Μάιος 2011 00:15

καλυτερα αντι για mail na to κανεις να logarei αλλου...
κ να στελνει το mail 1 φορα τη μερα ας πουμε...

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8575
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

404 error: ειδοποίηση με e-mail

Δημοσίευση από Basilakis » 16 Μάιος 2011 13:44

Γιατί δεν μας το κάνεις εσύ που είσαι τόσο μεγάλο αστέρι στον προγραμματισμό και τα ξέρεις όλα;

sotiriskalathas ευχαριστούμε πολύ που το μοιράστηκες μαζί μας!

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

404 error: ειδοποίηση με e-mail

Δημοσίευση από cherouvim » 16 Μάιος 2011 19:04

Θέλει προσοχή αυτό γιατί μπορεί εύκολα να υπάρξει πρόβλημα με τα πολλά emails.

Εγώ αυτό που κάνω είναι ένα cron το οποίο κάθε 24 ώρες στέλνει email όλα τα 404 από το apache log όπου με grep διαλέγω ότι χρειάζεται να γνωρίζω μόνο.

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

404 error: ειδοποίηση με e-mail

Δημοσίευση από cpulse » 16 Μάιος 2011 19:14

Ναι έτσι είναι το καλύτερο. Aggregator στα logs.

Ειδικά άμα σου μπει κανένα κακοφτιαγμένο search engine bot που σκαλώνει σε URLs με επαναλαμβανόμενα get vars το script σου ουσιαστικά είναι mail bomb.

Άβαταρ μέλους
sotiriskalathas
Δημοσιεύσεις: 8
Εγγραφή: 13 Μάιος 2011 13:51
Τοποθεσία: Trikala, Greece
Επικοινωνία:

404 error: ειδοποίηση με e-mail

Δημοσίευση από sotiriskalathas » 16 Μάιος 2011 19:33

Μέχρι στιγμής δεν έχω αντιμετωπίσει θέμα μαζικών e-mail ή τόσο τρομερές επισκέψεις από bots.

Η λογική του script είναι ίσως για σχετικά μικρά websites όπου ο admin θέλει άμεσα να ειδοποιείται για ένα broken link ας πούμε και να το διορθώνει εκείνη την ώρα και όχι κάθε 24ωρο για παράδειγμα.

Μου έτυχε ένας τύπος με IP Κίνας που δοκίμαζε SQL injection προσθέτοντας κώδικα στο τέλος των url μου και μου ήρθανε αμέσως τα e-mail ώστε να "επιληφθώ" του θέματος.

Και ένας σχετικά αρχάριος χρήστης δεν ξέρει καν τι είναι τα cron jobs οπότε ίσως καλυφθεί από ένα απλό και άμεσο σκριπτάκι :wink:
Ονομάζομαι Σωτήρης Καλαθάς και είμαι ένας ανεξάρτητος σχεδιαστής ιστοσελίδων και σύμβουλος επιχειρήσεων σε θέματα διαδικτύου. Ακολουθήστε με στο twitter: http://twitter.com/sotiriskalathas ή στο http://sotiriskalathas.gr/

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8575
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

404 error: ειδοποίηση με e-mail

Δημοσίευση από Basilakis » 16 Μάιος 2011 21:15

Εγώ θα έλεγα να μας δώσετε και τους Aggregators, για να έχουμε και τα δύο εδώ :-)

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

404 error: ειδοποίηση με e-mail

Δημοσίευση από cherouvim » 16 Μάιος 2011 22:32


Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

404 error: ειδοποίηση με e-mail

Δημοσίευση από skeftomilos » 17 Μάιος 2011 13:08

@sotiriskalathas αν χρειάζεται να επιληφθείς του θέματος κάθε φορά που κάποιος επιχειρεί SQL injection, τότε υπάρχει πρόβλημα! Σημαίνει ότι δεν έχεις αρκετή εμπιστοσύνη στην ανθεκτικότητα του κώδικα που έχεις γράψει. :-)

Άβαταρ μέλους
sotiriskalathas
Δημοσιεύσεις: 8
Εγγραφή: 13 Μάιος 2011 13:51
Τοποθεσία: Trikala, Greece
Επικοινωνία:

404 error: ειδοποίηση με e-mail

Δημοσίευση από sotiriskalathas » 17 Μάιος 2011 13:53

@skeftomilos: Όπως λένε και οι Άγγλοι "you can never be too careful"!!!
Ονομάζομαι Σωτήρης Καλαθάς και είμαι ένας ανεξάρτητος σχεδιαστής ιστοσελίδων και σύμβουλος επιχειρήσεων σε θέματα διαδικτύου. Ακολουθήστε με στο twitter: http://twitter.com/sotiriskalathas ή στο http://sotiriskalathas.gr/

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

404 error: ειδοποίηση με e-mail

Δημοσίευση από skeftomilos » 17 Μάιος 2011 14:01

Δεν χρειάζεται να είσαι carefull, αρκεί να χρησιμοποιείς ασφαλείς τεχνικές. Αν πρέπει να θυμάσαι σε κάθε sql query να κάνεις escapeQuotes τότε, ναι, πρέπει να είσαι carefull. Αν όμως χρησιμοποιείς ένα framework που το κάνει αυτόματα για σένα, τότε μπορείς να κρατήσεις την εγρήγορσή σου για άλλα πράγματα. :-)

Άβαταρ μέλους
jpk
Δημοσιεύσεις: 441
Εγγραφή: 09 Μαρ 2011 21:17

404 error: ειδοποίηση με e-mail

Δημοσίευση από jpk » 17 Μάιος 2011 16:06

skeftomilos έγραψε:framework

Ποίο framework&#8230; (πολύ το σοβαρεύεις το θέμα) και ένα PDO θα αρκούσε. Γενικά σε διαδικτιακές εφαρμογές &#8211; τοποθεσίες που έχεις κάποιο λόγο (επισκεψιμότητα ή ευαίσθητα δεδομένα για παράδειγμα) καλό είναι να κρατάς σε βάση όχι μόνο τα 404 αλλά οτιδήποτε αντιβαίνει την προγραμματισμένη ροή (μαζί με όλο το $_SERVER , γιατί ποτέ δεν ξέρεις ποια πληροφορία θα σου φανεί χρήσιμη). Αυτό δεν είναι καλό μόνο για να έχεις αντίληψη για τυχών επιθέσεις αλλά να έχεις συνολική εικόνα του τι συμβαίνει (π.χ. έτσι έμαθα τι είναι το owssvr.dll και αρκετά άλλα).

Βέβαια αν «σκαλώνει» ειδικά το google bot σε διευθύνσεις που δεν υπάρχουν έχεις πρόβλημα (όποια μέθοδο και αν ακολουθήσεις) , αλλά όλα αυτά αντιμετωπίζονται περιπτωσιολογικά.

Είναι καλό sotiriskalathas που έμαθες να χρησιμοποιείς την mail function (αν και είναι μάλλον ο πιο ακατάληλος τρόπος για να στέλνεις e-mail), και που έμαθες το $_SERVER['REQUEST_URI'] και επίσης είναι όμορφο που μοιράστηκες μαζί μας σε ένα forum αυτή σου την χαρά. Πάντα βέβαια χρειάζεται κάποια (έστω στοιχειώδη) μελέτη , για να αντιληφθούμε πράγματα (έστω τα βασικά) πριν ανοίξουμε θέμα δίνοντας συμβουλές σε άλλους, που μπορεί να έχουν ακόμα μεγαλύτερο βαθμό άγνοιας από εμάς.
Τελευταία επεξεργασία από το μέλος jpk την 17 Μάιος 2011 16:18, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

404 error: ειδοποίηση με e-mail

Δημοσίευση από cherouvim » 17 Μάιος 2011 16:16

jpk έγραψε:...καλό είναι να κρατάς σε βάση όχι μόνο τα 404 αλλά οτιδήποτε αντιβαίνει την προγραμματισμένη ροή ...
Μέχρι που θα πέσει η βάση και το πρόγραμμα σου θα μπει σε infinite loop προσπαθόντας να καταγράψει το αρχικό error αλλά και τα επόμενα που δεν μπορείς να γράψει στη βάση.
jpk έγραψε:Πάντα βέβαια χρειάζεται κάποια (έστω στοιχειώδη) μελέτη , για να αντιληφθούμε πράγματα (έστω τα βασικά) πριν ανοίξουμε θέμα δίνοντας συμβουλές σε άλλους, που μπορεί να έχουν ακόμα μεγαλύτερο βαθμό άγνοιας από εμάς.
Τι ακριβώς εννοείς; Κακώς έκανε που άνοιξε το thread;

Άβαταρ μέλους
jpk
Δημοσιεύσεις: 441
Εγγραφή: 09 Μαρ 2011 21:17

404 error: ειδοποίηση με e-mail

Δημοσίευση από jpk » 17 Μάιος 2011 16:27

Δεν σε πρόλαβα...., πρόσθεσα στο παραπάνω μήνυμα το «Βέβαια αν «σκαλώνει» ειδικά το google bot σε διευθύνσεις που δεν υπάρχουν, έχεις πρόβλημα (όποια μέθοδο και αν ακολουθήσεις) , αλλά όλα αυτά αντιμετωπίζονται περιπτωσιολογικά.»

Θα έμπαινε σε infinite loop αν το error ήταν για παράδειγμα exception που έχει να κάνει με την βάση (Για αυτό τα exceptions που προέρχονται από την βάση τα γράφουμε σε αρχείο) . Και αυτό μπορείς πολύ εύκολα να το ελέγξεις (σίγουρα ευκολότερα από αν τα έγραφες όλα σε αρχείο, ή να έστελνες e - mail.)

Το να ανοίγεις ένα thread σίγουρα δεν είναι κακό (Πάντα υπάρχει το ίδιο θέμα με όσους έχουν μεγαλύτερο βαθμό άγνοιας από εσένα και δοκιμάζουν αυτά που λες) . Όμως ούτε είναι κακό και να προτρέπεις σε εμβάθυνση.

Άβαταρ μέλους
sotiriskalathas
Δημοσιεύσεις: 8
Εγγραφή: 13 Μάιος 2011 13:51
Τοποθεσία: Trikala, Greece
Επικοινωνία:

404 error: ειδοποίηση με e-mail

Δημοσίευση από sotiriskalathas » 17 Μάιος 2011 16:36

Ένα forum δεν είναι ένας επίσημος φορέας που γράφεται μόνο το "σωστό" ή μόνο η "απόλυτη αλήθεια".

Ένα φόρουμ είναι ένας τόπος ανταλλαγής απόψεων.

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

Οτιδήποτε γράφουμε σε ένα φόρουμ -κατά την ταπεινή μου άποψη- δεν χρειάζεται να είναι ντε και καλά επιστημονικά τεκμηριωμένο, ακριβώς γιατί αυτή η τεκμηρίωση θα επέλθει μετά από διάλογο και λογικά επιχειρήματα.

Τώρα στην προκειμένη περίπτωση μοιράστηκα μαζί σας εντελώς φιλικά ένα script που σκάρωσα και θεώρησα χρήσιμο, για έναν απλό χρήστη.

Μέχρι στιγμής δεν είχα πρόβλημα με bots, αλλά μετά τα γραφόμενα σας κατανοοώ οτι σε περίπτωση εσκεμμένα επαναλαμβανόμενων λάθος url θα τρελαθεί ο σέρβερ να στέλνει mail.
Ονομάζομαι Σωτήρης Καλαθάς και είμαι ένας ανεξάρτητος σχεδιαστής ιστοσελίδων και σύμβουλος επιχειρήσεων σε θέματα διαδικτύου. Ακολουθήστε με στο twitter: http://twitter.com/sotiriskalathas ή στο http://sotiriskalathas.gr/

Απάντηση

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

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

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