Регистрация  |  Вход

XSS (Cross-Site Scripting)

Всем привет.

Кто то сталкивался с XSS (Cross-Site Scripting)?
Как можно проэмулировать атаку XSS в приложении?
Или XSS применяется только для внешних веб страниц? И стоить ли этому сильно уделять время? Приложения должно пройти Security Review.

Всем привет.

Кто то сталкивался с XSS (Cross-Site Scripting)?
Как можно проэмулировать атаку XSS в приложении?
Или XSS применяется только для внешних веб страниц? И стоить ли этому сильно уделять время? Приложения должно пройти Security Review.

Если "должно пройти Security Review" то надо уделать внимание обязательно!
Если найдут, то завернут назад на доделку.
В остальных случаях я бы не заморачивался особо. XSS актуальна для открытых обычным пользователям сайтов. Там не известно кто может придти и что может натворить. В salesforce обычно левые люди не ходят и функционал на 90% используется для внутренних нужд (если не внешний сайт или customer portal) и я далек от мысли что среди сотрудников найдется супер хакер который сможет эксплуатировать XSS - максимум выведут alert('Я крут!') и все.

Эмулировать очень просто - надо любым способом вывести незаэкранированную строковую переменную на странице которая будет содержать часть javascript.
самый просто способ - <apex:outputText value="badVar" escape="false"> а в переменной записать <script>alert('You are hacked!')</script>

Если "должно пройти Security Review" то надо уделать внимание обязательно!
Если найдут, то завернут назад на доделку.
В остальных случаях я бы не заморачивался особо. XSS актуальна для открытых обычным пользователям сайтов. Там не известно кто может придти и что может натворить. В salesforce обычно левые люди не ходят и функционал на 90% используется для внутренних нужд (если не внешний сайт или customer portal) и я далек от мысли что среди сотрудников найдется супер хакер который сможет эксплуатировать XSS - максимум выведут alert('Я крут!') и все.

Эмулировать очень просто - надо любым способом вывести незаэкранированную строковую переменную на странице которая будет содержать часть javascript.
самый просто способ - <apex:outputText value="badVar" escape="false"> а в переменной записать <script>alert('You are hacked!')</script>

Dmitry Shnyrev
Если "должно пройти Security Review" то надо уделать внимание обязательно!
Если найдут, то завернут назад на доделку.
В остальных случаях я бы не заморачивался особо. XSS актуальна для открытых обычным пользователям сайтов. Там не известно кто может придти и что может натворить. В salesforce обычно левые люди не ходят и функционал на 90% используется для внутренних нужд (если не внешний сайт или customer portal) и я далек от мысли что среди сотрудников найдется супер хакер который сможет эксплуатировать XSS - максимум выведут alert('Я крут!') и все.

Эмулировать очень просто - надо любым способом вывести незаэкранированную строковую переменную на странице которая будет содержать часть javascript.
самый просто способ - <apex:outputText value="badVar" escape="false"> а в переменной записать <script>alert('You are hacked!')</script>

Понял, спасибо.
А из программ сканирования на счет этого использовать ZAP Scanner, Burp? Или ими можно можно как раз токи только внешние страницы сканить?

[quote="Dmitry Shnyrev"]Если "должно пройти Security Review" то надо уделать внимание обязательно!
Если найдут, то завернут назад на доделку.
В остальных случаях я бы не заморачивался особо. XSS актуальна для открытых обычным пользователям сайтов. Там не известно кто может придти и что может натворить. В salesforce обычно левые люди не ходят и функционал на 90% используется для внутренних нужд (если не внешний сайт или customer portal) и я далек от мысли что среди сотрудников найдется супер хакер который сможет эксплуатировать XSS - максимум выведут alert('Я крут!') и все.

Эмулировать очень просто - надо любым способом вывести незаэкранированную строковую переменную на странице которая будет содержать часть javascript.
самый просто способ - <apex:outputText value="badVar" escape="false"> а в переменной записать <script>alert('You are hacked!')</script>[/quote]

Понял, спасибо.
А из программ сканирования на счет этого использовать ZAP Scanner, Burp? Или ими можно можно как раз токи только внешние страницы сканить?
  

Zap scanner не пробовал. Burp отличный инструмент, можно сказать топовый в своей теме, но очень сложный, плюс платный (хотя вроде для прохождения security review дают бесплатную лицензию). Ими можно сканировать все. В том числе и закрытые страницы - они работают по принципу прокси - ты пускаешь весь трафик через Burp и заходишь на орг под своим логином - сканнер использует свою сессию для сканирования.

Zap scanner не пробовал. Burp отличный инструмент, можно сказать топовый в своей теме, но очень сложный, плюс платный (хотя вроде для прохождения security review дают бесплатную лицензию). Ими можно сканировать все. В том числе и закрытые страницы - они работают по принципу прокси - ты пускаешь весь трафик через Burp и заходишь на орг под своим логином - сканнер использует свою сессию для сканирования.

На почитать https://developer.salesforce.com/page/Security
там много чего интересного. В разделе тулзов есть также сканеры.

На почитать [url=https://developer.salesforce.com/page/Security]https://developer.salesforce.com/page/Security[/url]
там много чего интересного. В разделе тулзов есть также сканеры.

Товарищи, хочу поделиться отличной статьей о XSS - с чего все началось.
В статье очень доступно описывается процесс создания и работы XSS на реальном примере.

http://habrahabr.ru/company/ua-hosting/blog/270599/

Товарищи, хочу поделиться отличной статьей о XSS - с чего все началось.
В статье очень доступно описывается процесс создания и работы XSS на реальном примере.

http://habrahabr.ru/company/ua-hosting/blog/270599/ 

Виктор
На почитать https://developer.salesforce.com/page/Security
там много чего интересного. В разделе тулзов есть также сканеры.

хорошее местечко

[quote="Виктор"]На почитать [url=https://developer.salesforce.com/page/Security]https://developer.salesforce.com/page/Security[/url]
там много чего интересного. В разделе тулзов есть также сканеры.[/quote]

хорошее местечко

Dmitry Shnyrev
http://habrahabr.ru/company/ua-hosting/blog/270599/

хорошая история

[quote="Dmitry Shnyrev"]http://habrahabr.ru/company/ua-hosting/blog/270599/[/quote]

хорошая история

Кстати очень поучительная. Так просто и понятно показаны интересные xss фишки. Не знаю правда насколько они актуальны для современных браузеров.

Кстати очень поучительная. Так просто и понятно показаны интересные xss фишки. Не знаю правда насколько они актуальны для современных браузеров.

Всем привет!
Сейчас столкнулся с XSS при Security Scanner.
Дело в том что есть несколько внешних страничек. Данными друг с другом они обмениваются через POST. Соответственно данные выводятся на страницу и используются в SOQL. Как мне экранировать их? Пока не нашел подходящую информацию.

Как заэкранировать на VP я нашел - var firstName = "{!JSENCODE(firstName)}";
А вот с апексом затык.
Пример:

String donId = ApexPages.currentPage().getParameters().get('order_id');
if(donId != null && donId != '')
{
list<Donation__c> donList = [select id from Donation__c where id=: donId];
}

Ругается на donId.

Всем привет!
Сейчас столкнулся с XSS при Security Scanner.
Дело в том что есть несколько внешних страничек. Данными друг с другом они обмениваются через POST. Соответственно данные выводятся на страницу и используются в SOQL. Как мне экранировать их? Пока не нашел подходящую информацию.

Как заэкранировать на VP я нашел - var firstName = "{!JSENCODE(firstName)}";
А вот с апексом затык.
Пример:
[code]
            String donId = ApexPages.currentPage().getParameters().get('order_id');
            if(donId != null && donId != '')
            {
                    list<Donation__c> donList = [select id from Donation__c where id=: donId];        
            }   
[/code]
Ругается на donId.

Так была же ж недавно точно такая тема.
и случай один в один.
Тут не надо ничего экранировать. Данная конструкция уже безопасна.
Проблема в другом. Как раз в той теме и разобрали.

Так была же ж недавно точно такая тема.
и случай один в один. 
Тут не надо ничего экранировать. Данная конструкция уже безопасна. 
Проблема в другом. Как раз в той теме и разобрали.