Всем привет.
Кто то сталкивался с 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>
Эмулировать очень просто - надо любым способом вывести незаэкранированную строковую переменную на странице которая будет содержать часть 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 на реальном примере.
Товарищи, хочу поделиться отличной статьей о XSS - с чего все началось. В статье очень доступно описывается процесс создания и работы XSS на реальном примере. http://habrahabr.ru/company/ua-hosting/blog/270599/
хорошее местечко
[quote="Виктор"]На почитать [url=https://developer.salesforce.com/page/Security]https://developer.salesforce.com/page/Security[/url] там много чего интересного. В разделе тулзов есть также сканеры.[/quote] хорошее местечко
хорошая история
[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];
}
Всем привет! Сейчас столкнулся с 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.
Так была же ж недавно точно такая тема.
и случай один в один.
Тут не надо ничего экранировать. Данная конструкция уже безопасна.
Проблема в другом. Как раз в той теме и разобрали.
Так была же ж недавно точно такая тема. и случай один в один. Тут не надо ничего экранировать. Данная конструкция уже безопасна. Проблема в другом. Как раз в той теме и разобрали.