PHP 초보자를 위한 이메일 삽입 소개
PHP로 이메일 삽입 방지
이메일 삽입을 방지하는 가장 좋은 방법은 입력 내용을 검증하는 것입니다.
다음 코드는 이전 장의 코드와 유사하지만 여기에는 형식에서 이메일 필드를 감지하기 위한 입력 유효성 검사기를 추가했습니다.
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <?php function spamcheck($field) { // filter_var() 过滤 e-mail // 使用 FILTER_SANITIZE_EMAIL $field=filter_var($field, FILTER_SANITIZE_EMAIL); //filter_var() 过滤 e-mail // 使用 FILTER_VALIDATE_EMAIL if(filter_var($field, FILTER_VALIDATE_EMAIL)) { return TRUE; } else { return FALSE; } } if (isset($_REQUEST['email'])) { // 如果接收到邮箱参数则发送邮件 // 判断邮箱是否合法 $mailcheck = spamcheck($_REQUEST['email']); if ($mailcheck==FALSE) { echo "非法输入"; } else { // 发送邮件 $email = $_REQUEST['email'] ; $subject = $_REQUEST['subject'] ; $message = $_REQUEST['message'] ; mail("someone@example.com", "Subject: $subject", $message, "From: $email" ); echo "Thank you for using our mail form"; } } else { // 如果没有邮箱参数则显示表单 echo "<form method='post' action='mailform.php'> Email: <input name='email' type='text'><br> Subject: <input name='subject' type='text'><br> Message:<br> <textarea name='message' rows='15' cols='40'> </textarea><br> <input type='submit'> </form>"; } ?> </body> </html>
참고:
위 코드에서는 PHP 필터를 사용하여 입력을 확인합니다.
FILTER_SANITIZE_EMAIL 필터는 문자열에서 이메일의 잘못된 문자를 제거합니다.
FILTER_VALIDATE_EMAIL 필터는 이메일 주소 값의 유효성을 검사합니다.
PHP 필터에서 필터에 대한 자세한 내용을 읽을 수 있습니다.