Ερώτηση πάνω σε φόρμα επικοινωνίας

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

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

Απάντηση
Άβαταρ μέλους
felipsemassa
Δημοσιεύσεις: 30
Εγγραφή: 01 Αύγ 2009 08:05

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από felipsemassa » 01 Αύγ 2009 08:32

Καλημέρα

ας πούμε πως φτιάχνουμε μια απλή φόρμα επικοινωνίας (όπως στο παράδειγμα Κατασκευή Φόρμα Επικοινωνίας)

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

<form method="post" action="sendmail.php">
  Το e-mail σας&#58; <br><input name="email" type="text" /><br />
  Μήνυμα&#58;<br />
  <textarea name="message" rows="15" cols="40">
  </textarea><br />
  <input type="submit" value="Αποστολή μηνύματος"/>
</form>

<?
  $email = $_REQUEST&#91;'email'&#93; ;
  $message = $_REQUEST&#91;'message'&#93; ;

  mail&#40; "tomailsou@mpe.gr", "φόρμα επικοινωνίας",
    $message, "From&#58; $email" &#41;;
  header&#40; "Location&#58; http&#58;//εδώ θα γίνει redirect μετά το submit ο επισκέπτης σου.gr/" &#41;;
?> 
είναι ασφαλής μια φόρμα όπως αυτή ; αν κάποιος αντιγράψει σε ένα άλλο αρχείο example.htm τον κωδικα της φόρμας από <form> ... </form> τότε θα μπορεί να στέλνει email από το example.htm στο tomailsou@mpe.gr χωρίς να επισκευθεί τη σελίδα sendmail.php ; ισχύει κάτι τέτοιο είμαι σε φάση που μαθαίνω και έχω αυτή την απορία ;

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από Banavas » 01 Αύγ 2009 10:28

Αν μέσα στην mail χρσιμοποιείς το "tomailsoy@tomailsoy.gr" αντί για παράμετρο τότε όλα τα μαιλ που στέλνονται από την φόρμα θα καταλήγουν στο email σου, πράγμα που δεν είναι χρήσιμο για τους spammers.
Aντίθετα αν χρησιμοποιήσεις παράμετρο για την δήλωση του mail πχ $email τότε κάποιος spammer μπορει να καταφέρει να περνάει email που θέλει να σπαμάρει στην φόρμα σου και να στέλνει τα μηνύματα spamm μέσα από την φόρμα σου.

Η αντιγραφή της φόρμας που αναφέρεις ισχύει. Αν κάποιος την αντιγράψει και διορθώσει την διεύθυνση στο form action για να βλέπει το sendmail.php στο server σου, το email θα έρθει στην διεύθυνση αλληλογραφίας σου. Αλλά πρακτικά δεν έχει λόγο κάποιος να κάνει κάτι τέτοιο.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
felipsemassa
Δημοσιεύσεις: 30
Εγγραφή: 01 Αύγ 2009 08:05

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από felipsemassa » 01 Αύγ 2009 11:23

ευχαριστώ για την απάντηση

θες να πείς πως αν αφήσω το php μέρος ως έχει

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

<?
  $email = $_REQUEST&#91;'email'&#93; ;
  $message = $_REQUEST&#91;'message'&#93; ;

  mail&#40; "tomailsou@mpe.gr", "φόρμα επικοινωνίας",
    $message, "From&#58; $email" &#41;;
  header&#40; "Location&#58; http&#58;//εδώ θα γίνει redirect μετά το submit ο επισκέπτης σου.gr/" &#41;;
?> 
είναι καλύτερα απο άποψη ασφάλειας σε σχέση με

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

<?
  $email = $_REQUEST&#91;'email'&#93; ;
  $message = $_REQUEST&#91;'message'&#93; ;

  $myemail = "tomailsou@mpe.gr" ;

  mail&#40; "$myemail", "φόρμα επικοινωνίας",
    $message, "From&#58; $email" &#41;;
  header&#40; "Location&#58; http&#58;//εδώ θα γίνει redirect μετά το submit ο επισκέπτης σου.gr/" &#41;;
?> 
αυτή η αλλάγη ευνοεί τους spammers ; εξήγησε το λίγο ή δώσε κάποιο παράδειγμα αν δεν το έχω καταλάβει .

Τώρα πάνω στην αρχική μου ερώτηση, βλέπω πως η αρχική υπόθεση ισχύει (!)
υπάρχει κάποιος τρόπος να δεχόμαστε τα emails που στέλλονται μόνο από την φόρμα που υπάρχει στη σελίδα μας sendmail.php ή http://www.mywebsite.gr/sendmail.php και κάθε άλλο email που έρχεται από αλλού να απορρίπτεται, ώστε να αποφύγουμε την περίπτωση που κάποιος αντιγράφει τη φόρμα και στέλνει email απο αλλού ;

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1952
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από vassilism » 01 Αύγ 2009 12:51

Και γιατί να μπει στον κόπο κάποιος spammer να κάνει όλη αυτή τη διαδικασία και να μην στείλει το mail κατευθείαν από τη φόρμα σου?

Μιλάμε για πόντιους spammers? :D

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από ThyClub » 01 Αύγ 2009 13:00

Άκυρο... :lol:

Άβαταρ μέλους
felipsemassa
Δημοσιεύσεις: 30
Εγγραφή: 01 Αύγ 2009 08:05

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από felipsemassa » 01 Αύγ 2009 13:15

vassilism έγραψε:Και γιατί να μπει στον κόπο κάποιος spammer να κάνει όλη αυτή τη διαδικασία και να μην στείλει το mail κατευθείαν από τη φόρμα σου?

Μιλάμε για πόντιους spammers? :D
δεν κατάλαβες έκανα 2 ερωτήματα,

το πρώτο αφορά τη περίπτωση της mail() α) γράφοντας το email ως έχει

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

mail&#40;"tomailsou@mpe.gr", "φόρμα επικοινωνίας", $message, "From&#58; $email" &#41;;
και β) γράφοντας μέσα στη mail() το email ως μεταβλητή

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

$myemail = "tomailsou@mpe.gr" ;  $myemail = "tomailsou@mpe.gr" ; mail&#40; "$myemail", "φόρμα επικοινωνίας", $message, "From&#58; $email" &#41;;
γιατί η χρήση μεταβλητής για τη διεύθυνση email μας μέσα στη mail() ευνοεί τους spammers ;

ενώ το δεύτερο αφορά την αρχική μου ερώτηση , αν και πως μπορούμε να δεχόμαστε emails μόνο από τη φόρμα που βρίκεται στη σελίδα μας (αποκλείοντας όλες τις άλλες πιθανές διευθύνσεις εκτός της δικής μας σελίδας στην οποία βρίκεται η φόρμα) ;

ελπίζω να έγιναν τα ερωτήματα ποιο κατανοητά τώρα

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1952
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από vassilism » 01 Αύγ 2009 13:39

Το πρώτο στο απάντησε ο Μάρκος, ο λόγος που ευνοεί τους spammers είναι ότι περνάει σαν παράμετρος και έτσι μπορεί κάποιος να στο «κλέψει».

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

Άβαταρ μέλους
felipsemassa
Δημοσιεύσεις: 30
Εγγραφή: 01 Αύγ 2009 08:05

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από felipsemassa » 01 Αύγ 2009 13:55

vassilism έγραψε:Το πρώτο στο απάντησε ο Μάρκος, ο λόγος που ευνοεί τους spammers είναι ότι περνάει σαν παράμετρος και έτσι μπορεί κάποιος να στο «κλέψει».

Για το δεύτερο μπορείς να κάνεις έναν έλεγχο αν τα δεδομένα που στέλνονται φεύγουν από το url σου.
Για το πρώτο δεν καταλαβαίνω πως θα γίνει αυτό αφού για το email μου δεν χρησιμοποιώ κάποιο input για να το καταχωρήσω στη mail() αλλά το δηλώνω απλά μια γραμμή παραπάνω

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

$myemail = "tomailsou@mpe.gr" ;
mail&#40;"$myemail",...&#41;...
Για το δεύτερο μήπως μπορείς να δώσεις ένα παράδειγμα ;

κάτι τέτοιο μήπως ; (δεν το δοκίμασα, είναι σωστό ; )

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

<?
if&#40;strpos&#40;$_SERVER&#91;'HTTP_REFERER'&#93;,'mywebsite.gr'&#41;&#41;
&#123;
 
  $email = $_REQUEST&#91;'email'&#93; ;
  $message = $_REQUEST&#91;'message'&#93; ;

  mail&#40; "tomailsou@mpe.gr", "φόρμα επικοινωνίας",
    $message, "From&#58; $email" &#41;;
  header&#40; "Location&#58; http&#58;//εδώ θα γίνει redirect μετά το submit ο επισκέπτης σου.gr/" &#41;;
&#125;
else
&#123;
echo "Λάθος";
&#125;
?>

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1952
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από vassilism » 01 Αύγ 2009 14:16

Ναι κάπως έτσι και εγώ δεν μπορώ να το δοκιμάσω τώρα για να σου πω με σιγουριά.
felipsemassa έγραψε:Για το πρώτο δεν καταλαβαίνω πως θα γίνει αυτό αφού για το email μου δεν χρησιμοποιώ κάποιο input για να το καταχωρήσω στη mail() αλλά το δηλώνω απλά μια γραμμή παραπάνω

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

$myemail = "tomailsou@mpe.gr" ;
mail&#40;"$myemail",...&#41;...
Εγώ έτσι το δουλεύω μέχρι τώρα και δεν έχω φάει spam, δεν ξέρω αν μπορεί να το πάρει κάποιος έτσι αλλά αν το έκανες GET ή POST θα μπορούσε.

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από Banavas » 01 Αύγ 2009 14:23

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

mail&#40; "tomailsou@mpe.gr", "φόρμα επικοινωνίας",   $message, "From&#58; $email" &#41;; 
Σαυτή την περίπτωση η mail() δεν μπορεί παρά να στείλει το μαιλ στην συγκεκριμένη διεύθυνση. Αυτό από μόνο του καθιστά άχρηστο το να χακέψεις την φόρμα με σκοπό την αποστολή μηνυμάτων spamm.
Όταν χρησιμοποιηθεί η παράμετρος υπάρχει η δυνατότητα να χρησιμοποιηθεί η φόρμα για spamming. Δεν σημαίνει απαραίτητα οτι αυτό θα γίνει οπωσδήποτε. Εξατράται από πολλά. Δεν ξέρω πως ακριβώς το κάνουν γιατί δεν είμαι spammer ουτε haker. Όμως οι φόρμες τα βιβλία επισκεπτών οι φόρμες εγγραφής και λοιπά φορμοειδή που αποτελούν πύλη εισόδου δέχονται καθημερινά επιθέσεις με διάφορες προθέσεις από robots trojans και ανεγγεφαλους.(Οι τελευταίοι το κάνουν απλά για να αποδείξουν οτι κάτι κατάφεραν).

Τώρα πάνω στην αρχική μου ερώτηση, βλέπω πως η αρχική υπόθεση ισχύει (!)
υπάρχει κάποιος τρόπος να δεχόμαστε τα emails που στέλλονται μόνο από την φόρμα που υπάρχει στη σελίδα μας sendmail.php ή http://www.mywebsite.gr/sendmail.php και κάθε άλλο email που έρχεται από αλλού να απορρίπτεται, ώστε να αποφύγουμε την περίπτωση που κάποιος αντιγράφει τη φόρμα και στέλνει email απο αλλού ;
Προσπαθώ τόση ώρα να σου εξηγήσω οτι αυτό είναι άχρηστο οταν βάλεις το μαιλ σου στην mail() χωρίς την χρήση παραμέτρου.

Συνήθως στις φόρμες και στα βιβλία επισκεπτών γίνονται spam εγγαφές από robots που καταφέρνουν να συμπληρώνουν τις φόρμες αυτόματα με σκοπό την δημοσίευση συνδέσμων προς άλλα sites με χάπια πορνό κλπ.
Εγώ έχω αντιμετωπίσει αυτό το φαινόμενο κόβοντας αυτόματα όσα μηνύματα περιέχουν συνδέσμους. Φυσικά έτσι δεν αφήνεις τουν κανονικούς χρήστες να στείλουν κάποιο σύνδεσμο αλλά αυτό δεν με πειράζει.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
felipsemassa
Δημοσιεύσεις: 30
Εγγραφή: 01 Αύγ 2009 08:05

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από felipsemassa » 01 Αύγ 2009 14:39

Όταν χρησιμοποιηθεί η παράμετρος υπάρχει η δυνατότητα να χρησιμοποιηθεί η φόρμα για spamming. Δεν σημαίνει απαραίτητα οτι αυτό θα γίνει οπωσδήποτε. Εξατράται από πολλά.
Banavas κατάλαβα τι λές τώρα απλά περίμενα να μου λέγατε και τι πρέπει να κάνω ώστε να αποφύγω όλα αυτά που μπορούν να γίνουν από spammers λόγω της παραμέτρου, ποιες τεχνικές έχουμε μέσω της php για προστασία σε τέτοιες περιπτώσεις και ούτω καθεξής, όποιος γνωρίζει κάτι που θα μπορούσαμε να κάνουμε ας το αναλύσει :)

Banavas αυτό πως το βλέπεις (στο άλλο ερώτημα)

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

if&#40;strpos&#40;$_SERVER&#91;'HTTP_REFERER'&#93;,'mywebsite.gr'&#41;&#41;
&#123; 
// άφησε να ποστάρει
&#125;
else
&#123;
// δείξε λάθος
&#125;
σωστό ;

Άβαταρ μέλους
Stadem
Δημοσιεύσεις: 198
Εγγραφή: 10 Μαρ 2007 20:45

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από Stadem » 01 Αύγ 2009 14:48

Αυτό που κάνω εγώ πάντως και δεν έχω κανένα πρόβλημα είναι να βάζω στο mail () το email απευθείας.
Μην βάζεις το email απο REQUEST, POST ή GET γιατί σίγουρα θα έχεις πρόβλημα με spam.

Επίσης αυτό εμένα με βοηθάει για την ασφάλεια.

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

$online_path= "mysite.gr";
 if &#40;&#40;$_SERVER&#91;'HTTP_REFERER'&#93;!=$online_path&#41; or &#40;$_SERVER&#91;'HTTP_REFERER'&#93;==""&#41;&#41; &#123;
 die&#40;"<META http-equiv=\"refresh\" content=\"0;URL=$error_page\""&#41;;
web-IQ Interactive Quality
Εικόνα

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1952
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από vassilism » 01 Αύγ 2009 14:53

felipsemassa έγραψε:όποιος γνωρίζει κάτι που θα μπορούσαμε να κάνουμε ας το αναλύσει :)
CAPTCHA :D

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από Banavas » 01 Αύγ 2009 15:41

felipsemassa έγραψε:
Banavas αυτό πως το βλέπεις (στο άλλο ερώτημα)

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

if&#40;strpos&#40;$_SERVER&#91;'HTTP_REFERER'&#93;,'mywebsite.gr'&#41;&#41;
&#123; 
// άφησε να ποστάρει
&#125;
else
&#123;
// δείξε λάθος
&#125;
σωστό ;
Η strpos() δίνει την θέση ενος χαρακτήρα μέσα σε ένα string (χορδή όχι βρακί :D ) και είναι λάθος διατυπωμένη.

Γενικά μου φαίνεται περιττό αλλά αν θέλεις χρησιμοποίησε αυτό που έδωσε ο Stadem.

Σχετικά με το CAPTCHA όπως έχω ξαναγράψει στο forum επειδή με εκνευρίζει ως χρήστη αποφεύγω να το χρησιμοποιώ για να μην εκνευρίζω τους χρήστες του site μου.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1952
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Ερώτηση πάνω σε φόρμα επικοινωνίας

Δημοσίευση από vassilism » 01 Αύγ 2009 15:54

Banavas έγραψε:Σχετικά με το CAPTCHA όπως έχω ξαναγράψει στο forum επειδή με εκνευρίζει ως χρήστη αποφεύγω να το χρησιμοποιώ για να μην εκνευρίζω τους χρήστες του site μου.
+1 :D

Απάντηση

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

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

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