Jump to content

Как в SimplaCMS реализовано экранирование символов при записе в базу данных? Защита от Sql иньекций?


Recommended Posts

Смотрю симплу и не вижу в ней ничего похожего на mysql_real_escape_string.
При добавлении заказа так же все данные записываются в обьект, потом формируется строка запрос и сразу исполняется.

 

Где в Симпле происходит защита от sql иньекций при записи в базу?

 

Link to post
Share on other sites

Смотрю симплу и не вижу в ней ничего похожего на mysql_real_escape_string.

При добавлении заказа так же все данные записываются в обьект, потом формируется строка запрос и сразу исполняется.

 

Где в Симпле происходит защита от sql иньекций при записи в базу?

Файл api/Database.php строка 97.

Использовать вот так $item = $this->db->escape($val);

Link to post
Share on other sites

Файл api/Database.php строка 97.

Использовать вот так $item = $this->db->escape($val);

 

Балин

В версии которую я смотрю ТАКОГО НЕТ!!!

Качал с оф сайта примерно год назад.

Это плохо?

 

В старых версиях были какие нибудь уязвимости?

Link to post
Share on other sites

В старых версиях были какие нибудь уязвимости?

Изменение кода связано с переходом на mysqli, из-за чего старые методы стали неактуальны.
Link to post
Share on other sites

Балин

В версии которую я смотрю ТАКОГО НЕТ!!!

Качал с оф сайта примерно год назад.

Это плохо?

 

В старых версиях были какие нибудь уязвимости?

 

год назад были другие методы взлома и методы защиты, все стремится и развивается, в старых версиях много чего было сделано не очень грамотно, как и в любых системах...:)

Link to post
Share on other sites

Вы код хоть смотрели?

 

В новой версии ничего не поменялось и зачем то появилась функция escape()

Ну и основной функционал переведен на mysqli

Но безопасность при этом так и осталась на прежнем уровне.

 

Все работает на библиотеке Котерова

http://dklab.ru/chicken/nablas/demo/placeholder/Placeholder.php

 

Не понимаю зачем нужно было стирать комментарии в коде?

И не понимаю можно ли этой библиотеке доверять?

 

Там в качестве экранирования используется addslashes()

 

Большинство интернет магазинов сделанных на симпле будут работать на старых драйверах mysql и никто переходить на новую версию не будет.

Так что вопрос безопасности остается актуальным.

Link to post
Share on other sites

Вы код хоть смотрели?

 

В новой версии ничего не поменялось и зачем то появилась функция escape()

Ну и основной функционал переведен на mysqli

Но безопасность при этом так и осталась на прежнем уровне.

 

Все работает на библиотеке Котерова

http://dklab.ru/chicken/nablas/demo/placeholder/Placeholder.php

 

Не понимаю зачем нужно было стирать комментарии в коде?

И не понимаю можно ли этой библиотеке доверять?

 

Там в качестве экранирования используется addslashes()

 

Большинство интернет магазинов сделанных на симпле будут работать на старых драйверах mysql и никто переходить на новую версию не будет.

Так что вопрос безопасности остается актуальным.

1. - покажите мне хотя бы одну sql иньекцию

2. - почему не кто не вспомнил про Request.php ?

Link to post
Share on other sites

1. - покажите мне хотя бы одну sql иньекцию

2. - почему не кто не вспомнил про Request.php ?

1. Это как раз мы и пытаемся выяснить

http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string

2. Потому что к теме этот файл никаким боком не относится

Link to post
Share on other sites

1. Это как раз мы и пытаемся выяснить

http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string

2. Потому что к теме этот файл никаким боком не относится

Почитайте мат часть про SQL инъекции а потом тут пузырь раздувайте. 

 

Откуда приходят инъекции и за что отвечает Request.php

Link to post
Share on other sites

Почитайте мат часть про SQL инъекции а потом тут пузырь раздувайте. 

 

Откуда приходят инъекции и за что отвечает Request.php

Иньекции происходят внедрением в код части sql запроса.

Читайте сами http://ru.wikipedia.org/wiki/%D0%92%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_SQL-%D0%BA%D0%BE%D0%B4%D0%B0

 

 

Request.php отвечает за присвоение $_GET $_POST значений внутренним переменным созданными магической функцией __get __set с возможностью проверки этих значение на типы (строка число), а так же подтирании двойных слешей.

Link to post
Share on other sites

Для особых людей, которые не понимаю при чем здесь Request.php. 
Из Вашего же линка: 

 

 

Атака типа внедрения SQL может быть возможна из-за некорректной обработки входных данных, используемых в SQL-запросах.

еще есть примеры 
 

# Предыдущий код скрипта...
$id = $_REQUEST['id'];
$res = mysql_query("SELECT * FROM news WHERE id_news = $id");
# Следующий код скрипта...

$_REQUEST — Переменные HTTP-запроса или как еще называют суперглобальная пременная. 

То есть на месте $_REQUEST может быть и $_GET и $_POST и т.д.


Что Вам не нравится в фильтрации входящих данных в Request.php, есть и по типу фильтрация и от слешов избавляется 

Вам подавай защиту от sql иньекций при етом не одного конкретного примера иньекции не привели. 

Вроде себя 
позиционируете как мастера на все руки (Дизайн, Программирование, Верстка, Заказчик) а ведете себя как тот Корс. 

Сотую Вам нащупать с начало лозейку а потом бить в колокол.  


 

Link to post
Share on other sites

Мне лазейки не нужны.

Симпла не бесплатный проект типа опенкарт.

И стоит не намного меньше чем 1с

Вы такой смешной )))) Если я Вам скажу что существующего механизма достаточно, Вы мне поверите ?

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...