возможные эксплойты javascript по открытой ссылке? - PullRequest
1 голос
/ 22 октября 2008

На странице с сайта (одного из наших) я могу ввести в URL следующий код:

javascript:createNewWindow('Something', 100, 100, 'Text')

Есть ли способ, которым кто-то может использовать это?

function createNewWindow(url, widthIn, heightIn, title) 
        {
            var strOptions='toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width=' + widthIn + ',height=' + heightIn;
            var newWin = open( url,title,strOptions ); 
            newWin.focus();
        }

Ответы [ 4 ]

1 голос
/ 22 октября 2008

Функция createNewWindow () имеет те же уязвимости, что и window.open (). Вам, вероятно, не нужно беспокоиться об этом.

Если ваш комментарий о добавлении кода означает, что вы смогли отправить

javascript:createNewWindow('Something', 100, 100, 'Text')

во входных данных формы (или в качестве параметра строки запроса) и их отображения в отображаемом HTML, тогда ваше приложение действительно очень уязвимо для нескольких типов атак, но не благодаря функции createNewWindow (). В этом случае проблема заключается в отображении непроверенных данных из браузера.

1 голос
/ 01 марта 2009

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

Изучение межсайтовых сценариев (или XSS или CSS) поможет вам понять риски, связанные с этим кодом.

1 голос
/ 22 октября 2008

Учитывая этот код, скрипт createNewWindow () не более уязвим, чем необработанный JavaScript.

0 голосов
/ 29 января 2010

В общем, JavaScript, работающий на вашем сайте, не является источником уязвимостей. Вы должны беспокоиться о серверной части приложения.

Тем не менее! Вы можете ввести уязвимости в свой сайт, используя JavaScript. Его называют DOM Based XSS . Размещенный вами код не уязвим для DSS на основе XSS.

...