XSS (Cross-Site Scripting)

XSS (Cross-Site Scripting)

Всем привет.

Кто то сталкивался с 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>

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? Или ими можно можно как раз токи только внешние страницы сканить?

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

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

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

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

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

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

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

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

Кстати очень поучительная. Так просто и понятно показаны интересные 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.

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

Interesting information? Help us, post link to social media..