Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
1 / 1 / 0
Регистрация: 08.03.2014
Сообщений: 85

Защита от взлома

17.11.2014, 17:20. Показов 3670. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите организовать защиту от взлома.
Слышал что можно в input'ах вводить sql код.Если это правда: как исправить?И есть ли ещё способы взлома и как защитится?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.11.2014, 17:20
Ответы с готовыми решениями:

Защита от взлома
Имеется простенький скрипт реги&авториз нужно: "обработка всех переданных через форму данных функцией mysql_real_escape_string"...

Защита формы от взлома
Добрый день. Слышал что многие взломы сайтов происходят из-за того, что на форме нет защиты. Я немного не представляю как можно взломать...

Защита PHP сайта от взлома
Как защитить сайт, от взлома, написанный на PHP?

39
Software Engineer
 Аватар для Custos
332 / 335 / 55
Регистрация: 23.09.2014
Сообщений: 991
22.02.2015, 00:15
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от tip78 Посмотреть сообщение
может всё-таки В БАЗУ помещать после htmlspecialchars()
Нет, хранится именно в сыром виде.

Цитата Сообщение от tip78 Посмотреть сообщение
prepare так то на любителя
я так делаю:
$s{'mysqli'}->escape_string(htmlspecialchars(substr($ _POST{'fieldname'},0,255),ENT_QUOTES))
это для варчаров
а где можно юзать a-z0-9, там просто ^регексп$
И зачем все это? Подготовленные выражения "разделяют" сам запрос и данные. После первого запроса к СУБД sql запрос компилируется и при последующих запросах будет передаваться не весь запрос, а только забинденные данные.

Благодаря такой реализации помимо многих других плюсов и то, что нельзя выполнить инъекцию, так как СУБД "знает" где запрос, а где данные. Благодаря этому отпадает необходимость городить говнокод с экранированием данных, а так же самой СУБД легче живется из-за того, что не надо каждый раз интерпретировать запрос (он уже скомпилен и закэширован).
0
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
22.02.2015, 00:26
PHP
1
2
3
4
5
6
7
function mysql_escape($string)
{       
        $string = trim($string);
        if (get_magic_quotes_gpc()){ $string = stripslashes($string);}
        $string = mysql_real_escape_string($string);    
        return htmlentities($string, ENT_QUOTES, "UTF-8");
}
Через неё пропускай всё что ни ввели
0
-72 / 10 / 4
Регистрация: 01.09.2009
Сообщений: 163
22.02.2015, 00:47
Цитата Сообщение от Custos Посмотреть сообщение
Нет, хранится именно в сыром виде.
ну ну, в каком-нибудь магазине таблица на 100 товаров (а есть такие, которые и на 10000 могут страницу выдать), где в строке 3+ таких поля, и будете 300 раз вызывать функцию
это не говнокод, нет.

Цитата Сообщение от Custos Посмотреть сообщение
После первого запроса к СУБД sql запрос компилируется и при последующих запросах будет передаваться не весь запрос, а только забинденные данные.
тут намекают, что скомпилированный запрос доступен в пределах одного подключения (сессии)
The scope of a prepared statement is the session within which it is created, which as several implications:
A prepared statement created in one session is not available to other sessions.
When a session ends, whether normally or abnormally, its prepared statements no longer exist.
а поскольку не все держат постоянные подключения (я не держу, ибо чревато), то вариант не всем подойдёт
memcached/redis FTW (for teh win)
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
22.02.2015, 01:14
tip78, а ведь в твоих словах есть доля правды
а всего лишь стоит написать класс(функцию) фильтрации данных используя filter_var, filter_input
немного сахарной пудры и не надо будет никакого stripslashes и mysql_real_escape_string
0
-72 / 10 / 4
Регистрация: 01.09.2009
Сообщений: 163
22.02.2015, 02:16
Цитата Сообщение от Poznakomlus Посмотреть сообщение
а всего лишь стоит написать класс(функцию) фильтрации данных используя filter_var, filter_input
немного сахарной пудры и не надо будет никакого stripslashes и mysql_real_escape_string
чё это вдруг?
stripslashes вообще просто удаляет экранирование символов, она не помогает проверять ввод
я выше написал, чего достаточно на 100%
$mysqli->escape_string обязателен на произвольных строках (*char)
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
22.02.2015, 02:43

PHP
1
2
$a = "Me' test";
var_dump(filter_var ( $a, FILTER_SANITIZE_MAGIC_QUOTES));
Добавлено через 17 минут
PHP
1
2
$a = "<div>Me' test</div>";
var_dump(filter_var ( $a, FILTER_SANITIZE_FULL_SPECIAL_CHARS));
0
-72 / 10 / 4
Регистрация: 01.09.2009
Сообщений: 163
22.02.2015, 03:08
о, я про эту функцию и не знал
она чё-то мутная какая-то
например, пропускает:
http://example.com/"><script>alert(document.cookie)</script>
так в камментах пишут
руками надёжнее в общем, через простейший регексп
0
Software Engineer
 Аватар для Custos
332 / 335 / 55
Регистрация: 23.09.2014
Сообщений: 991
22.02.2015, 04:25
Цитата Сообщение от tip78 Посмотреть сообщение
ну ну, в каком-нибудь магазине таблица на 100 товаров (а есть такие, которые и на 10000 могут страницу выдать), где в строке 3+ таких поля, и будете 300 раз вызывать функцию
это не говнокод, нет.
Это все после обработки благополучно кэшируется. Данные хранятся в "сыром" виде потому, что это может понадобится для реализации будущих фич проекта, где будут надо исходные данные.

Добавлено через 22 минуты
Цитата Сообщение от tip78 Посмотреть сообщение
тут намекают, что скомпилированный запрос доступен в пределах одного подключения (сессии)
MySQL ?) Не удивительно) Не зря отказался от этого г....
СУБД кэширует план (который создается после разбора запроса) выполнения запросов. И если текст нового пришедшего запроса не меняется - он берёт его из своего кэша по обычному хэшу. По крайней мере так происходит в PostgreSQL и Oracle. Ну а MySQL... тут одно объяснение - это же MySQL, чего вы хотели)
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
22.02.2015, 06:50
А если вообще за дело плотно взяться - то лучше использовать framework и не городить велосипедов с одним колесом, притом квадратным . Там уже всё продумано и остаётся только успешно пользоваться.
0
22.02.2015, 18:02

Не по теме:

Цитата Сообщение от lyod Посмотреть сообщение
Ну вот, ни за что, ни про что назвали недоучкой
Вы как луч света в темном царстве. Если приняли мой трёп на свой счет - извиняюсь

0
-72 / 10 / 4
Регистрация: 01.09.2009
Сообщений: 163
22.02.2015, 19:50
Цитата Сообщение от lyod Посмотреть сообщение
А если вообще за дело плотно взяться - то лучше использовать framework и не городить велосипедов с одним колесом, притом квадратным . Там уже всё продумано и остаётся только успешно пользоваться.
$mysqli->escape_string и есть фреймворк
а в этих ваших Yii тяжёлого говнокода чуть менее, чем дохрена
когда можно самому 1й строкой всё сделать, то нахера тащить весь фреймворк, со всеми его граблями и тысячами строк кода?
0
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
22.02.2015, 19:56
tip78, вот имянно
0
22.02.2015, 20:31

Не по теме:

Цитата Сообщение от tip78
в этих ваших Yii тяжёлого говнокода чуть менее, чем дохрена
Это мировой фреймворк. Его разрабатывают супер профессионалы, имхо. По вашему там есть *о*но код?

Этим честно говоря не пользовался не одного раза. Так что не могу сказать есть ли в нем *о*но код.
Цитата Сообщение от tip78
когда можно самому 1й строкой всё сделать, то нахера тащить весь фреймворк, со всеми его граблями и тысячами строк кода?
Согласен.

Только если работа очень сложная можно использовать фреймворк. Тогда можно задействовать весь его арсенал на 80-90%.

0
22.02.2015, 20:36

Не по теме:

Цитата Сообщение от tolimadokara Посмотреть сообщение
Это мировой фреймворк. Его разрабатывают супер профессионалы
не не супер. Одни behaviors чего стоят. Ребята даже не в курсе каков современный php

0
22.02.2015, 20:41

Не по теме:

Цитата Сообщение от root
Цитата Сообщение от tolimadokara
Это мировой фреймворк. Его разрабатывают супер профессионалы
не не супер. Одни behaviors чего стоят. Ребята даже не в курсе каков современный php
Ясно. Значит он разрекламирован хорошо. Поэтому популярен.

Хреновым фреймворком не пользовались бы миллионы программистов. Тогда, если пользуются то из-за его популярности.

0
-72 / 10 / 4
Регистрация: 01.09.2009
Сообщений: 163
22.02.2015, 20:55
Цитата Сообщение от tolimadokara Посмотреть сообщение
Это мировой фреймворк. Его разрабатывают супер профессионалы, имхо. По вашему там есть *о*но код?
Цитата Сообщение от tolimadokara Посмотреть сообщение
Хреновым фреймворком не пользовались бы миллионы программистов.
расскажите это битриксу, WP, DLE, друпалу
особенно битрикс вас внимательно выслушает
миллионы программистовбыдлокодеров им пользуются, как и ПХП в целом, потому что он простой
когда думать не надо, это всегда "миллионы мух, которые не могут ошибаться"
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
23.02.2015, 11:23

Не по теме:

Цитата Сообщение от root Посмотреть сообщение
Вы как луч света в темном царстве. Если приняли мой трёп на свой счет - извиняюсь
Да я так и понял. Я в шутку. :)



Добавлено через 4 часа 49 минут
Цитата Сообщение от tip78 Посмотреть сообщение
$mysqli->escape_string и есть фреймворк
Вы имели в виду ООП, наверное...
0
-72 / 10 / 4
Регистрация: 01.09.2009
Сообщений: 163
23.02.2015, 15:22
Цитата Сообщение от lyod Посмотреть сообщение
Вы имели в виду ООП, наверное...
а фреймворк это что?
набор ООП и есть
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
24.02.2015, 06:22
Цитата Сообщение от tip78 Посмотреть сообщение
а фреймворк это что?
набор ООП и есть
Не набор ООП, а набор функционала (причём хорошо продуманного) на ООП. То есть framework использует ООП, но framework не равно ООП.
0
-72 / 10 / 4
Регистрация: 01.09.2009
Сообщений: 163
24.02.2015, 15:25
Цитата Сообщение от lyod Посмотреть сообщение
Не набор ООП, а набор функционала (причём хорошо продуманного) на ООП. То есть framework использует ООП, но framework не равно ООП.
как говорит один мой знакомый модератор:
софистика.
словоблудство.
бан.

по сути ничего нового пока не изобрели. функции и классы наше всё.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2015, 15:25
Помогаю со студенческими работами здесь

Защита от взлома
Как сделать фильтрацию такой кодировки ? &lt;? include 'config/config.php'; if(isset($_GET,$_GET)) { $GetUID = $_GET; ...

Защита WP от взлома
Как защитить сайт на WP от взлома?

Защита от Взлома
У меня есть программа,которую можно взломать разными Программами для взлома, Я хочу сделать проверку процессов! Например: Запустил...

Защита от взлома с ndk
код на плюсах тоже декомпилируется в читаемый код?

Защита drupal от взлома
Хакер взламывает мой сайт и заливает shell раньше это был редирект + троян в админ панелиconfig&amp;render=overlay{gzip} JS:Iframe-AHU...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru