|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Проверка кода на ПХП для отправки почты... |
|
Проверка кода на ПХП для отправки почты...
|
Пользователь Сообщения: 66 |
![]() Прошу знающих ПХП дать совет/рекомендацию. Вот ниже дан код, сделанный под заказ. Есть несколько моментов которые мне чайникуПХП здесь завуалированы. 1. Соответсвует ли код - безопастности, "....слышал что метод POST легко поддаётся деструктивному коду, в смысле конструция этого метода + пару тройку команд", так ли это? (если не правильно пояснил, заранее приношу извинения, пересмотрю при акценте на этот пункт) 2. Почему то нет пути для сендМаила? Но тем не менее скрипт рабоает ![]() ![]() Цитата:
![]() ![]() ) <body bgcolor="#cc9966" text="#999999" link="#FFFFFF" vlink="#FFFF00" alink="#CCCCCC"> <? print" <FORM method=\"POST\" action=\"send.php?varx=send\"> <P>Ваше Имя:<br> <INPUT type=\"text\" name=\"Name\" size=30> </p> <P>Ваш e-mail:<br> <INPUT type=\"text\" name=\"Email\" size=30> </p> <P>Сообщение:<br> <textarea name=\"Message\" cols=30 rows=5></textarea> </p> <INPUT type=\"submit\" value=\"Отправить\"> </FORM>"; switch($varx) : default : print "<table width= cellpadding=0 cellspacing=0 border=0 align=center>"; break; case("send") : if ($Email == "") {print "<script language=JavaScript>window.alert('Введите e-mail!');</script>"; exit;} if ($Message == "") {print "<script language=JavaScript>window.alert('Введите текст!');</script>"; exit;} if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $Email) and $Email != "") {print "<script language=JavaScript>window.alert('Не правельный E-mail');</script>"; exit;} $er = 1; *$ip = $REMOTE_ADDR; *$date = date("d.m.Y"); *$info = "Name:\t$Name\n"; *$info .= "E-Mail:\t$Email\n"; *$info .= "Message:\t$Message\n\n"; * *$send_to = "test@test.ru"; * * * * * * *$subject = "Сообщение $date"; * * * * * * *$headers = "From: Ip адрес: $ip: \n"; *$headers .= "Reply-To: $email\n\n"; * *$send = mail($send_to, $subject, $info, $headers); *if($send == 1) *{ * *print ("<script language=JavaScript>window.alert('Отправлено $date');</script>"); *} *else * *print ("<script language=JavaScript>window.alert('Ошибка');</script>"); break; endswitch; print "<center><p><font size=\"1\" color=\"#7D7D7D\"></font></p><center>"; ?> [s]Исправлено: ran71me3rr0r, 9:53 29-06-2004[/s] [s]Исправлено: ran71me3rr0r, 9:55 29-06-2004[/s] |
||
Отправлено: 09:49, 29-06-2004 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать 1) Можно генерировать POST запросы бочками, тут уж фильтрация и только фильтрация.
2) А скрипту (по крайней мере PHP скрипту) о пути к sendmail'у знать и не надо, на это есть знания у модуля или cgi реализации самого интерпритатора. Много странностей... к примеру? Извольте: 1) Последний print в коде. 2) Если varx != send, то выводится заголовок таблицы и все... 3) Судя по коду юзабилити никакого нет. Кому приятно, что после отправки формы будут выдавать сообщения с диагностическими сообщениями? Причем жавой... 4) Сама отправка письма - простейшая. 5) \n\n тоже странно выглядит, я больше к \r\n привык 6) Нефильтрованные данные позволят мне добавить в переменную $headers такие поля как Bcc и Cc, что позволит использовать скрипт как точку рассылки спама по нужным адресам. 7) Даже без п. 6 можно воспользоваться скриптом как мейл-бомбером - зафлудить мыльницу test@test.ru В общем, скрипт писАлся новичком... |
------- Отправлено: 13:40, 29-06-2004 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать ran71me3rr0r
и это весь скрипт??? а где окончание таблицы файла??? честно говоря то что использован eregi а на preg_match не очень хорошо, т.к. это не очень распространенный тип регулярных выражений, к тому же он отрубает часть разрешенных мыл! например - АДРЕй[AT]vz.net между прочим это разрешенное мыло! и мыло на такие адреса ходят, я сам проверял! Prisoner там есть страшный регексп который проверяет мыло на валидность он ничего не нужного не пропустит! ran71me3rr0r в коне не определена переменная $ip, возможно на локалхосте у программиста она и определена, но я на 99% уверен, что у твоего хостера другие настройки! |
------- Отправлено: 19:34, 29-06-2004 | #3 |
Пользователь Сообщения: 66
|
Профиль | Отправить PM | Цитировать Vlad Drakula, Prisoner
большое спасибо за своевременные и существенные ответы. Мне как чайникуПХП одно только понятно, из всех вышеперечисленных "магических слов, заклинаний", что данный скрипт вы бы не советовали устанавливать на инетПредставительсве фирмы. ![]() |
Отправлено: 09:20, 30-06-2004 | #4 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать ran71me3rr0r
ты все правильно подметил! |
|
------- Отправлено: 18:44, 30-06-2004 | #5 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Vlad Drakula
Мда, ты прав. Буказоид в конце паттерна не заметил :\ ran71me3rr0r Мягко сказано - не советовал бы ![]() Добавлено: Vlad Drakula, уже третий топик я открываю - твоего поста нет, отправляю ответ - твой пост перед моим ![]() |
------- Отправлено: 18:52, 30-06-2004 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Запрет отправки сообщений со старой почты. | zubkoff.s | Microsoft Windows NT/2000/2003 | 11 | 20-01-2010 03:04 | |
скрипт отправки почты | stolyar | Вебмастеру | 10 | 04-01-2010 18:23 | |
V. 5.5/2000/2003 - SMTP Ограничение отправки почты. | illznn | Microsoft Exchange Server | 16 | 06-11-2009 18:04 | |
Программа для отправки СМС. | voler | Автоматическая установка приложений | 3 | 21-10-2007 23:32 |
|