mam prosty skrypt PHP pocztowego, który przyjmuje wartości z formularza złożonego przez POST i maili je do mnie:Jak odseparować dane wejściowe użytkownika w PHP przed wysłaniem wiadomości?
<?php
$to = "[email protected]";
$name = $_POST['name'];
$message = $_POST['message'];
$email = $_POST['email'];
$body = "Person $name submitted a message: $message";
$subject = "A message has been submitted";
$headers = 'From: ' . $email;
mail($to, $subject, $body, $headers);
header("Location: http://example.com/thanks");
?>
Jak można odkazić wejście?
Jeśli używasz prostego pola tekstowego, nie powinno być żadnych htmlentities w danych $ _POST. Jeśli używasz edytora tekstu formatowanego, który generuje html, użyj html_entity_decode(). Pamiętaj, aby usunąć znaki kontrolne z tematu - znaki nowej linii w temacie mogą zepsuć nagłówki wiadomości e-mail. –
@Frank Farmer: sugerujesz, że powinien on ufać, że żaden ofensywny kod nie dotrze do jego kodu tylko dlatego, że użył "prostego" pole tekstowe"? To straszna rada. –
Heh, proste pole tekstowe. Po prostu zrobiłem test XSS na kimś, kto to zrobił. Nie podobało im się zabawne zdjęcie przesłane za pomocą linku img wprowadzonego w "prostym polu tekstowym". –