Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Помогине с php
Новая тема
Ответить
цитата
10/12/14 в 21:49
raider
суть пага
на ней инфа
ввести Email
админу высылается почта - Email и IP посетителя
на PHP
цитата
10/12/14 в 22:13
Stek
http://www.hotscripts.com/category/scripts/php/scripts-programs/form-processors/
на выбор
цитата
10/12/14 в 22:24
Lexikon
если собираешь базу, то я бы порекомендовал еще писать все эти данные в файл.
что-то типа такого
Код:
<?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/12/14 в 12:28
BigBro
Гм... а санитаризировать ПОСТ-переменные от злобной школоты часом не надо? Ох уж мне этот пхп в стиле 90-х
цитата
11/12/14 в 12:53
Stek
BigBro писал:
Гм... а санитаризировать ПОСТ-переменные от злобной школоты часом не надо? Ох уж мне этот пхп в стиле 90-х
А нафига ? Все равно же в текстовом формате на почту свалится.
цитата
11/12/14 в 13:02
raider
да, в файл дублировать вполне разумно
спасибо попробую
цитата
11/12/14 в 13:12
BigBro
Stek писал:
А нафига ? Все равно же в текстовом формате на почту свалится.
Вот когда насыпет 20к мыл с милыми месаджами "в текстовом формате" с перебором etc, pwd, JOIN и т.п. - он поймет нафига
цитата
11/12/14 в 14:04
raider
так что капчу надо?
цитата
11/12/14 в 14:24
BigBro
лично мне пробивали капчу и загоняли 25к мыл за пару сек.
нужна просто нормальная защита от ввода говна
цитата
11/12/14 в 14:42
raider
например?
цитата
11/12/14 в 14:52
BigBro
в исходный код не вчитывался, но в целом где-то так:
<?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
?>
цитата
11/12/14 в 14:54
Yacc
Например так
Код:
if ( ! (isset($_POST['email']) and filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))) {
// Invalid email
die;
}
цитата
11/12/14 в 15:01
BigBro
Yacc писал:
Например так
кстати да, я не посмотрел что вводится только мыло. В моем варианте фильтруются любые данные
цитата
11/12/14 в 15:41
Stek
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
А потом окажется, что то ссылка не дошла, то текст порезан, то еще что. Нафига все это мутить в примитивном скрипте то ?
цитата
11/12/14 в 16:27
BigBro
Stek писал:
Да насрать, это ведь бесплатное решение на коленке, которое тупо отсылает текст.
Мое имхо: в любом коде 2-й строкой должна идти защита. Рядом с этим файлом на коленке может стоять 10 рабочих сайтов, базы паролей, БД и т.п. и все это пулей пойдет по песде из-за такой беспечности. Как говорит классик, преценденты были.
цитата
11/12/14 в 16:53
Lexikon
Ну я как бы и приписал:
Lexikon писал:
Нужно еще бахнуть проверку, являются ли введенные данные E-Mail'ом
что в сущности и подразумевает защиту от всякой херни.
цитата
11/12/14 в 17:21
Stek
BigBro писал:
Мое имхо: в любом коде 2-й строкой должна идти защита. Рядом с этим файлом на коленке может стоять 10 рабочих сайтов, базы паролей, БД и т.п. и все это пулей пойдет по песде из-за такой беспечности.
Скажи мне плиз, в чем будет проблема, если юзер получит письмо с текстом "cat /etc/passwd" , ну или этот же текст, будет записан куда то в файл, который является по сути логом. Каким образом это может повредить серверу или рядом стоящим сайтам ?
цитата
11/12/14 в 17:36
Mika
BigBro писал:
лично мне пробивали капчу и загоняли 25к мыл за пару сек.
нужна просто нормальная защита от ввода говна
Ну каптча значит посредственная была. А использовать сервисы типа антигейта, чтобы насыпать непонятных мыл, мне представляется маловероятным событием.
BigBro писал:
Мое имхо: в любом коде 2-й строкой должна идти защита. Рядом с этим файлом на коленке может стоять 10 рабочих сайтов, базы паролей, БД и т.п. и все это пулей пойдет по песде из-за такой беспечности.
Это конечно замечательно, но еще лучше понимать что делаешь и для чего это делаешь.
цитата
14/12/14 в 02:49
ravlio
Защиту без каптчи можно сделать на основе статистических данных кликов по элементам формы. Иными словами, человек/бот блокируется, если ведёт себя неправильно на форме/сайте. Можно даже без сбора статистики, а просто указать, в какие координаты пользователь должен кликать и с примерно какой минимальной задержкой (ну и предусмотреть нажатие на Tab, вместо мыши). Автоспамилки отсеются на 100%. Вполне сойдёт, если автор не собирается делать публичный сервис рассылки. Также подход можно совместить с каптчей.
Со стороны сервера стандартные фильтры на входящие данные, на частые запросы с одинаковых ip и так далее. ТСу, думаю, достаточно поставить просто каптчу, фильтр на ввод данных и лимит на ip.
Новая тема
Ответить
Эта страница в полной версии