/ / Rails - javascript инжекции - рубинки на релси

Релси - javascript инжекции - рубинки на релси

Използвам Rails 3 и Ruby 1.9.2. Правим нещо специално, когато показвам съдържанието на публикацията си, просто правя

<%=@post.content%>

Когато добавям

"<script language="javascript">alert("test");</script>"

за моята поща, разбира се, тя изпълнява javascript сигнала!

Опитах се да добавя html_safe както преди запазването, така и преди показването, но не го поправи нищо.

Ако трябва да добавя код за сигурност, ще го имамда го добавите, преди да я запазите или преди да я покажете? Чух, че релсите 3 го правят сами, така че не се притеснявах много за сигурността, но все пак има някои основни неща, с които да внимаваш.

Отговори:

2 за отговор № 1

Релси 3 е доста стриктен, за да избягате от всичко, което поставяте на вашето мнение, но на Райли 2 и по-рано е било вашата отговорност да направите това. Трябва да избягате от всичко с помощта на h помощен метод:

<%= h(value) %>

При изграждане на приложение, което приема произволен потребителски вход трябва да бъдете сигурни, че избягвате всичко и всичко, което се вижда в изгледа.


1 за отговор № 2

Използвате ли Rails 3? Авторските права на javascript трябва автоматично да бъдат избегнати.

Но за повече информация относно предотвратяването на XSS, аз просто ще погледна Райън Бейтс ".