- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте. Помогите решить проблемку. Сделал сайт с инклюдом, Само подключение происходит по такому коду.
<?
if(!empty($dr))include("$dr/$id");
else{
if ($id=="") {
include ("first.html");
}
else {
include ("$id");
}
}
?>
На мой сайт начали поступать жалобы что он рассылает спам. Я поспрашивал, но толком никто ничего не сказал. Сказали только что такой инклюд большая глупость и что через него как раз сломали сайт и начали через него спамить.
Кто в курсах помогите, люди добрые, Подскажите что нужно сделать и изменить тут, чтоб прекратить спам.
Жду с нетерпением ответов.
include("$dr/$id"); через это и ломают.
можно просто задать scipt.php?dr=saitculhakera&dr=scriptuhacera.php и твои сайт взломан
Подскажите что нужно сделать и изменить тут, чтоб прекратить спам.
Жду с нетерпением ответов.
Пока не расскажете, какую роль выполняет вышенаписанный кусок кода, никто не сможет предложить правильное решение.
ID и DR числовые или буквенные ?
Если и то и другое то:
Ссылка по теме http://php.ru/forum/viewtopic.php?p=35#35
Пока не расскажете, какую роль выполняет вышенаписанный кусок кода, никто не сможет предложить правильное решение.
Я предложил :)
Зингельшухер добавил 30.05.2008 в 20:42
И главное (обращаюсь ко всем кто занимается написанием подобных "шедевров") перестаньте страдать фигнёй, подобный скрипт вам специалист за 5$ напишет, а если на форуме спросить (и спросить правильно) то и вовсе бесплатно...
Я предложил :)
Ну для "пинка в правильную сторону" - это, разумеется, подойдет:) Но ТС, судя по вопросу, интересует готовое решение, и можно ждать следующих вопросов:
1. Я указал папку "/statyi/novyie/vasya" (или вообще с другого сайта), но она не вывелась!
2. Почему-то не работает, если название файла начинается с заглавной буквы!
3. Данные вводятся через форму на главной странице, скрипт их не видит!
4. У меня файл называется "реферат.html" - так что, нельзя?
и т.п.
Поэтому просто гадать насчет условий не хочется, а
если на форуме спросить (и спросить правильно) то и вовсе бесплатно
:)
DenIT вышенаписанный кусок кода подключает в index.php файл id через директорию dr
NFM врубинкокс "то есть понял :)", получаеться ты на своём сервере открываешь чужие файлы ,в которых и могут быть скрипты выполняющие спам. Так?
ЗингельшухерХороший ник, многозначительный))). id и dr на них у меня ограничений нет. Вот по вашему совету и применю наверное регулярочку чтоб только буквы были.
За 5 уе не интересно, самому интереснее, понять "вкурить" что к чему.
И ещё вопрос в догонку. Если у меня на сайте есть 3 формы. Данные из них тоже не никак не фильтруются, не обрабатываються, и на сайте не светяться, только сохраняються в файл .txt. Как злоумышленник может это использовать?
snug, да, правильно поняли.
Вообще, надо привыкать приводить все используемые внешние переменные к нужному типу, чтоб впоследствии не болела голова. Т.е. если ждете число - делаете $id = (int)$_GET['id'], если данные приходят через POST-форму - то и забираете их из $_POST, проверив при этом $_SERVER[HTTP_REFERER].
В данном случае - да, проверяете регуляркой (учтя все варианты, в т.ч. слеши и т.п., если необходимо).
И ещё вопрос в догонку. Если у меня на сайте есть 3 формы. Данные из них тоже не никак не фильтруются, не обрабатываються, и на сайте не светяться, только сохраняються в файл .txt. Как злоумышленник может это использовать?
Зависит от того, как написан скрипт сохранения данных в файл.
id и dr на них у меня ограничений нет.
В этом и проблема (так нельзя, ограничения нужны)
Хороший ник, многозначительный
Просто взят из анекдота
самому интереснее, понять "вкурить" что к чему.
Тогда кури мануал, там сказано что, почему, как, зачем и.т.д.
надо привыкать приводить все используемые внешние переменные к нужному типу
Заблуждение, (int) не может превышать 2млрд а так-же не может начинаться с нулей, это проблема и проблема важная. Опять-же строка "12рапг7124" будет равна "12" однако это не одно и тоже.
Данные надо проверять а не преобразовывать, а (когда уже их надо отправлять в базу/файловую систему/итд) преобразовывать их надо не в зависимости от того откуда пришли а от того куда пойдут.
Ссылка по теме http://dkflbk.nm.ru/php_basic_err_1.html
Данные надо проверять а не преобразовывать
Ну, зависит от задач. Если данные пользовательские - то да, ему нужно тыкать ошибки, пока не введет правильно. А если передается идентификатор объекта для последующего добавления в запрос, и его можно подменить через GET - то проще привести данные к int (в этом случае и нули в начале, и 2 млрд - неактуальны), и использовать их. А выводить взломщику сообщение "ваш xss содержит недопустимые символы" - лень:)
преобразовывать их надо не в зависимости от того откуда пришли а от того куда пойдут.
Ну, внутренние переменные (определенные за 100 строк до передачи) я стараюсь изначально в правильном виде определять:)
PS: за ссылку спасибо 🍻
PPS: is_numeric ругается на пробел после числа, а это достаточно распространенная ошибка ввода в поле. Соответственно, нужно еще и trim использовать?
А выводить взломщику сообщение "ваш xss содержит недопустимые символы" - лень
По этому можно тупо выводить 404 (если речь идёт о GET параметрах) ибо странички c адресом например /ru/forum/comment/3287792 не существует (а благодаря моему сообщению яндекс проиндексирует и будет думать что это реальная страничка) так что реальный XSS в действии
Ну, зависит от задач.
Само собой всё зависит от конкретных случаев, например если проверять число которое изначально не может иметь никаких значений кроме 1 и 2 то тут вообще всё просто, тупо можно case-ом обойтись, или вове if-ом
тем не менее, ссылка кликабельна и ведет сюда же:)