Обеззараживание URL для предотвращения XSS в Rails

В приложении rails пользователи могут создавать события и публиковать URL-адреса для ссылки на внешний сайт событий.

Как очистить URL-адреса для предотвращения ссылок XSS?

Заранее спасибо,

пример XSS, который нельзя предотвратить с помощью метода sanitize рельсов

@url = "javascript:alert('XSS')"
<a href="<%=sanitize @url%>">test link</a>
7 голосов | спросил rickypai 9 MarpmFri, 09 Mar 2012 17:31:44 +04002012-03-09T17:31:44+04:0005 2012, 17:31:44

4 ответа


0

Попробуйте выполнить дезинфекцию, когда href уже находится в теге, например:

url = "javascript:alert('XSS')"
sanitize link_to('xss link', url)

Это дает мне:

<a>xss link</a>
ответил Ben 28 32012vEurope/Moscow11bEurope/MoscowWed, 28 Nov 2012 10:04:14 +0400 2012, 10:04:14
0

Вы можете использовать метод Rails метод санитарной обработки для некоторых основных ограничений.

Или вы можете использовать sanitize rgrove для получения дополнительных параметров.

Надеюсь, это поможет.

ответил Phyo Wai Win 9 MarpmFri, 09 Mar 2012 18:08:35 +04002012-03-09T18:08:35+04:0006 2012, 18:08:35
0

sanitize работает со строками HTML, а не с URL. Это означает, что вы не можете очистить сам URL, но вы можете очистить фрагмент HTML, содержащий ссылку с вредоносным URL. например

<%= sanitize "<a href='#{@url}'>Things</a>" %>

Это очистит вашу ссылку от всех известных вредоносных атрибутов

ответил Nikolay 6 FriEurope/Moscow2013-12-06T04:53:28+04:00Europe/Moscow12bEurope/MoscowFri, 06 Dec 2013 04:53:28 +0400 2013, 04:53:28
0

Эта уязвимость была исправлена ​​с 3.2.13, 3.1.12, 2.3.18.

Следующая ссылка также содержит исправление, которое можно использовать в более ранних версиях.

https://groups.google.com/forum/#! MSG /RubyOnRails-безопасности /zAAU7vGTPvI /1vZDWXqBuXgJ

ответил Naofumi Kagami 21 42013vEurope/Moscow11bEurope/MoscowThu, 21 Nov 2013 04:39:43 +0400 2013, 04:39:43

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132