Използвам 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, аз просто ще погледна Райън Бейтс ".