Jump to content


Photo
- - - - -

Вопрос безопасности самописаного ajax скрипта.


Best Answer SmetDenis , 03 November 2014 - 11:17

Посмотрел код.
Мои мысли по поводу

- Секретный ключ - это ерунда, лучше использовать авторизацию Joomla и сессию.
- Чтобы не городить костылей с инициализацией CMS, верный путь - это сделать отдельный компонент (очень-очень-очень простенький - это 2 файлика и запись в таблице extenstions). На крайний случай зарегистрировать плагин с отдельным контроллером Zoo (не путать с JBZoo).
- Не используйте _REQUEST почти что под страхом смерти. Есть более гуманные методы

$jInput = JFactory::getApplication()->input;
$jInput->get($key, $default, 'FLOAT');
- ну и проверка пользователя (группы или id) Go to the full post


  • This topic is locked This topic is locked
4 replies to this topic

#1 Ёшкин Кот

Ёшкин Кот
  • JBZoo User (rus)
  • User rate: 77.7
  • posts: 757
  • topics: 134

Posted 02 November 2014 - 21:04

Я сделал модуль изненения курсов валют на сайте в файле jbcurrency.xml.

 

Вот теперь по рассуждению здравому вижу дырень. Скрипт который отвечает за обработку данных через ajax может быть доступен прямым запросом. 

 

Есть ли какой то способ предотвратить это? иначе ловкач знающий как передаются данные и куда запросто устроит джихад валютам.

 

Можно конечно вывести какой то ключ.... в скрытом поле передать его, и в принципе его будет видеть только админ... но это не решение наверное.. ни разу так не делал.

 


  • 0

#2 Ёшкин Кот

Ёшкин Кот
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 77.7
  • posts: 757
  • topics: 134

Posted 03 November 2014 - 07:25

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

 

На сколько я понял вопрос простого обновления курсов валют руками в jbcurrency.xml... 


  • 0

#3 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 03 November 2014 - 10:46

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


Вы задали вопрос в два часа ночи. Все спят ;)

Где посмотреть ваш ajax скрипт в действии? Что он делает и почему это дыра по вашему мнению?
Ни ссылки... ни кода...
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#4 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 03 November 2014 - 10:53

Если я верно понимаю вопрос - то достаточно будет проверить права (группу) пользователя перед важными действиями.

$juser = JFactory::getUser();
if (in_array('3', $juser->groups) {
   // только для авторизованного пользователя из группы id=3
}

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 03 November 2014 - 11:17   Best Answer

Посмотрел код.
Мои мысли по поводу

- Секретный ключ - это ерунда, лучше использовать авторизацию Joomla и сессию.
- Чтобы не городить костылей с инициализацией CMS, верный путь - это сделать отдельный компонент (очень-очень-очень простенький - это 2 файлика и запись в таблице extenstions). На крайний случай зарегистрировать плагин с отдельным контроллером Zoo (не путать с JBZoo).
- Не используйте _REQUEST почти что под страхом смерти. Есть более гуманные методы
$jInput = JFactory::getApplication()->input;
$jInput->get($key, $default, 'FLOAT');
- ну и проверка пользователя (группы или id)
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!