мы, цари - народ работящий!
С нами с 11.06.05
Сообщения: 13121
Рейтинг: 4892
|
Добавлено: 10/12/14 в 21:49 |
суть пага
на ней инфа
ввести Email
админу высылается почта - Email и IP посетителя
на PHP
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 10/12/14 в 22:13 |
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
2
|
|
|
Люблю то, что делаю!
С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418
|
Добавлено: 10/12/14 в 22:24 |
если собираешь базу, то я бы порекомендовал еще писать все эти данные в файл.
что-то типа такого
Код: |
<?php
header("Content-Type: text/html; charset=UTF-8");
$ip = $_SERVER["REMOTE_ADDR"];
if (@$_POST["mail"]) {
//echo $_POST["mail"];
//echo $ip;
file_put_contents("db.dat", $_POST["mail"]."|".$ip."\n", FILE_APPEND);
mail("mail@mail.mail", "Zagolovok", $_POST["mail"]."|".$ip);
}else{
echo ('
<form action="./form.php" method="POST">
<div align="center">
введите E-mail<br />
<input type="text" name="mail" size="40"><br />
<input type="submit" value="Отправить" name="submit">
</div>
</form>
');
}
?>
|
Но это так сказать на коленке написано. Нужно еще бахнуть проверку, являются ли введенные данные E-Mail'ом + чтоб не отправляли пустую форму.
Файл куда будут дублироваться данные лучше поместить в отдельную директорию и закрыть ее от прямого доступа.
|
|
|
|
Добрый дядюшка
С нами с 11.05.02
Сообщения: 2087
Рейтинг: 1262
|
Добавлено: 11/12/14 в 12:28 |
Гм... а санитаризировать ПОСТ-переменные от злобной школоты часом не надо? Ох уж мне этот пхп в стиле 90-х
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 11/12/14 в 12:53 |
BigBro писал: | Гм... а санитаризировать ПОСТ-переменные от злобной школоты часом не надо? Ох уж мне этот пхп в стиле 90-х |
А нафига ? Все равно же в текстовом формате на почту свалится.
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
2
|
|
|
мы, цари - народ работящий!
С нами с 11.06.05
Сообщения: 13121
Рейтинг: 4892
|
Добавлено: 11/12/14 в 13:02 |
да, в файл дублировать вполне разумно
спасибо попробую
|
|
|
|
Добрый дядюшка
С нами с 11.05.02
Сообщения: 2087
Рейтинг: 1262
|
Добавлено: 11/12/14 в 13:12 |
Stek писал: | А нафига ? Все равно же в текстовом формате на почту свалится. |
Вот когда насыпет 20к мыл с милыми месаджами "в текстовом формате" с перебором etc, pwd, JOIN и т.п. - он поймет нафига
|
|
|
|
мы, цари - народ работящий!
С нами с 11.06.05
Сообщения: 13121
Рейтинг: 4892
|
Добавлено: 11/12/14 в 14:04 |
так что капчу надо?
|
|
|
|
Добрый дядюшка
С нами с 11.05.02
Сообщения: 2087
Рейтинг: 1262
|
Добавлено: 11/12/14 в 14:24 |
лично мне пробивали капчу и загоняли 25к мыл за пару сек.
нужна просто нормальная защита от ввода говна
|
|
И встать, когда с тобой разговаривает... ПОДПОРУЧИК!!!
|
0
|
|
|
мы, цари - народ работящий!
С нами с 11.06.05
Сообщения: 13121
Рейтинг: 4892
|
Добавлено: 11/12/14 в 14:42 |
например?
|
|
|
|
Добрый дядюшка
С нами с 11.05.02
Сообщения: 2087
Рейтинг: 1262
|
Добавлено: 11/12/14 в 14:52 |
в исходный код не вчитывался, но в целом где-то так:
Код: [развернуть] |
<?php
header("Content-Type: text/html; charset=UTF-8");
$mailo = clearvar($_POST["mail"]);
if ($mailo != '') {
$ip = $_SERVER["REMOTE_ADDR"];
file_put_contents("db.dat", $mailo."|".$ip."\n", FILE_APPEND);
mail("mail@mail.mail", "Zagolovok", $mailo."|".$ip);
}else{
echo ('
<form action="./form.php" method="POST">
<div align="center">
введите E-mail<br />
<input type="text" name="mail" size="40"><br />
<input type="submit" value="Отправить" name="submit">
</div>
</form>
');
}
// Check variables
function clearvar($var) {
if (preg_match("/script|http|\<|\>|\(|\)|eval|SELECT|UNION|UPDATE|exe|exec|INSERT|tmp|%|\*|\+|\.\.\/|\/\/|etc|passwd|md5|security_test|file\:\/\/|sleep\(|\.\.%2|\x27|\x22|\x60/i", $var)) $var = '';
$var2 = trim(filter_var($var, FILTER_SANITIZE_SPECIAL_CHARS));
return $var2;
} //end function
?>
|
|
|
И встать, когда с тобой разговаривает... ПОДПОРУЧИК!!!
|
4
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 11/12/14 в 14:54 |
Например так
Код: | if ( ! (isset($_POST['email']) and filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))) {
// Invalid email
die;
} |
|
|
|
|
Добрый дядюшка
С нами с 11.05.02
Сообщения: 2087
Рейтинг: 1262
|
Добавлено: 11/12/14 в 15:01 |
кстати да, я не посмотрел что вводится только мыло. В моем варианте фильтруются любые данные
|
|
И встать, когда с тобой разговаривает... ПОДПОРУЧИК!!!
|
5
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 11/12/14 в 15:41 |
BigBro писал: | Вот когда насыпет 20к мыл с милыми месаджами "в текстовом формате" с перебором etc, pwd, JOIN и т.п. - он поймет нафига |
Да насрать, это ведь бесплатное решение на коленке, которое тупо отсылает текст.
BigBro писал: | function clearvar($var) {
if (preg_match("/script|http|\<|\>|\(|\)|eval|SELECT|UNION|UPDATE|exe|exec|INSERT|tmp|%|\*|\+|\.\.\/|\/\/|etc|passwd|md5|security_test|file\:\/\/|sleep\(|\.\.%2|\x27|\x22|\x60/i", $var)) $var = '';
$var2 = trim(filter_var($var, FILTER_SANITIZE_SPECIAL_CHARS));
return $var2;
} //end function |
А потом окажется, что то ссылка не дошла, то текст порезан, то еще что. Нафига все это мутить в примитивном скрипте то ?
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
0
|
|
|
Добрый дядюшка
С нами с 11.05.02
Сообщения: 2087
Рейтинг: 1262
|
Добавлено: 11/12/14 в 16:27 |
Stek писал: | Да насрать, это ведь бесплатное решение на коленке, которое тупо отсылает текст. |
Мое имхо: в любом коде 2-й строкой должна идти защита. Рядом с этим файлом на коленке может стоять 10 рабочих сайтов, базы паролей, БД и т.п. и все это пулей пойдет по песде из-за такой беспечности. Как говорит классик, преценденты были.
|
|
И встать, когда с тобой разговаривает... ПОДПОРУЧИК!!!
|
1
|
|
|
Люблю то, что делаю!
С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418
|
Добавлено: 11/12/14 в 16:53 |
Ну я как бы и приписал:
Lexikon писал: | Нужно еще бахнуть проверку, являются ли введенные данные E-Mail'ом |
что в сущности и подразумевает защиту от всякой херни.
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 11/12/14 в 17:21 |
BigBro писал: | Мое имхо: в любом коде 2-й строкой должна идти защита. Рядом с этим файлом на коленке может стоять 10 рабочих сайтов, базы паролей, БД и т.п. и все это пулей пойдет по песде из-за такой беспечности. |
Скажи мне плиз, в чем будет проблема, если юзер получит письмо с текстом "cat /etc/passwd" , ну или этот же текст, будет записан куда то в файл, который является по сути логом. Каким образом это может повредить серверу или рядом стоящим сайтам ?
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
0
|
|
|
С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365
|
Добавлено: 11/12/14 в 17:36 |
BigBro писал: | лично мне пробивали капчу и загоняли 25к мыл за пару сек.
нужна просто нормальная защита от ввода говна |
Ну каптча значит посредственная была. А использовать сервисы типа антигейта, чтобы насыпать непонятных мыл, мне представляется маловероятным событием.
BigBro писал: | Мое имхо: в любом коде 2-й строкой должна идти защита. Рядом с этим файлом на коленке может стоять 10 рабочих сайтов, базы паролей, БД и т.п. и все это пулей пойдет по песде из-за такой беспечности. |
Это конечно замечательно, но еще лучше понимать что делаешь и для чего это делаешь.
|
|
|
|
С нами с 17.08.11
Сообщения: 68
Рейтинг: 59
|
Добавлено: 14/12/14 в 02:49 |
Защиту без каптчи можно сделать на основе статистических данных кликов по элементам формы. Иными словами, человек/бот блокируется, если ведёт себя неправильно на форме/сайте. Можно даже без сбора статистики, а просто указать, в какие координаты пользователь должен кликать и с примерно какой минимальной задержкой (ну и предусмотреть нажатие на Tab, вместо мыши). Автоспамилки отсеются на 100%. Вполне сойдёт, если автор не собирается делать публичный сервис рассылки. Также подход можно совместить с каптчей.
Со стороны сервера стандартные фильтры на входящие данные, на частые запросы с одинаковых ip и так далее. ТСу, думаю, достаточно поставить просто каптчу, фильтр на ввод данных и лимит на ip.
|
|
|
|