Rails 3 XSS Protection (Rails user group Hamburg 2009-12-09)
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Rails 3 XSS Protection (Rails user group Hamburg 2009-12-09)

  • 2,121 views
Uploaded on

This is the short talk I gave at the Rails usergroup Hamburg event on 2009-12-09.

This is the short talk I gave at the Rails usergroup Hamburg event on 2009-12-09.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,121
On Slideshare
1,967
From Embeds
154
Number of Embeds
4

Actions

Shares
Downloads
13
Comments
0
Likes
1

Embeds 154

http://rvdh.de 94
http://www.rvdh.de 54
http://127.0.0.1 4
http://www.slideshare.net 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • M&#xF6;gliche Angriffe: <br /> * User-Session entf&#xFC;hren (Phishing) <br /> * Defacements <br /> * reflektiv vs. persistent
  • M&#xF6;gliche Angriffe: <br /> * User-Session entf&#xFC;hren (Phishing) <br /> * Defacements <br /> * reflektiv vs. persistent
  • M&#xF6;gliche Angriffe: <br /> * User-Session entf&#xFC;hren (Phishing) <br /> * Defacements <br /> * reflektiv vs. persistent
  • M&#xF6;gliche Angriffe: <br /> * User-Session entf&#xFC;hren (Phishing) <br /> * Defacements <br /> * reflektiv vs. persistent
  • M&#xF6;gliche Angriffe: <br /> * User-Session entf&#xFC;hren (Phishing) <br /> * Defacements <br /> * reflektiv vs. persistent
  • M&#xF6;gliche Angriffe: <br /> * User-Session entf&#xFC;hren (Phishing) <br /> * Defacements <br /> * reflektiv vs. persistent
  • M&#xF6;gliche Angriffe: <br /> * User-Session entf&#xFC;hren (Phishing) <br /> * Defacements <br /> * reflektiv vs. persistent
  • M&#xF6;gliche Angriffe: <br /> * User-Session entf&#xFC;hren (Phishing) <br /> * Defacements <br /> * reflektiv vs. persistent
  • M&#xF6;gliche Angriffe: <br /> * User-Session entf&#xFC;hren (Phishing) <br /> * Defacements <br /> * reflektiv vs. persistent

Transcript

  • 1. Rails 3.0 XSS Protection in ERB und das rails_xss-Plugin für Rails 2.3
  • 2. Worum geht‘s?
  • 3. XSS Cross-Site Scripting
  • 4. XSS Cross-Site Scripting Formular Web- site
  • 5. XSS Cross-Site Scripting Formular Web- site
  • 6. XSS Cross-Site Scripting Böses Script Formular Web- site
  • 7. XSS Cross-Site Scripting Formular Web- Böses site Script
  • 8. XSS Cross-Site Scripting Formular Web- Böses site Script
  • 9. XSS Cross-Site Scripting unschuldiger Seitenaufruf Formular Web- Böses site Script
  • 10. XSS Cross-Site Scripting unschuldiger Seitenaufruf Formular Web- Böses site Script Böses Script
  • 11. XSS Cross-Site Scripting unschuldiger Seitenaufruf Formular Web- Böses site Script Böses Script
  • 12. Unsichere Strings???
  • 13. ?
  • 14. Strings, die potentiell gefährlich sind, wenn sie auf einer Website ausgegeben werden
  • 15. Beispiele • Benutzereingaben (params-Hash) • Daten aus der DB • Hartgecodete Strings von unvorsichtigen Programmierern • Kombinationen davon (z.B. Helper) • …alles, was evtl. ein böses Script sein könnte
  • 16. Wie schützt man sich bei Rails 2?
  • 17. <%=h some_string %>
  • 18. Der h-Helper • Alias für html_escape • Escaped alle gefährlichen Zeichen, z.B: HTML-Tags, in unsicheren Strings • <li>foo</li> ➜ &lt;li&gt;foo&lt;/li&gt;
  • 19. Wie schützt man sich unter Rails 3?
  • 20. <%= some_string %>
  • 21. Kein h !!!
  • 22. Kein h !!! ➜ Alle Strings durch h-Helper gefiltert
  • 23. Manchmal will ich das gar nicht!
  • 24. String als sicher kennzeichnen (1/2) • Attribut lesen: my_string.html_safe? ➜ false/true • Als safe markieren: my_string.html_safe!
  • 25. String als sicher kennzeichnen (2/2) • für Helper: safe_helper :my_helper • In Views: <%= raw @article.textilized %>
  • 26. Rails 3 is paranoid !!!
  • 27. Um Safe-Status zu behalten, nur: << concat +
  • 28. Crazy paranoid stuff • safe_stuff + more_safe_stuff ➜ safe • "#{safe_stuff}#{more_safe_stuff}" ➜ unsafe
  • 29. Crazy, not so paranoid stuff (1/2) def bar_helper "<p>bar</p>" end def foo_helper content_tag "p" do '<script type="text/javascript">alert("foo");</script>' end end
  • 30. Crazy, not so paranoid stuff (2/2)
  • 31. Mitdenken nicht vergessen!!!
  • 32. Ich hab ne Rails 2.3-App, und ich würde gerne die Templates an das neue Default-Verhalten anpassen, hab aber keinen Bock, das noch recht instabile Rails 3.0 zu nehmen, weil ich da ja quasi ne ganze Menge Zeugs mitheirate, das ich entweder nicht gebrauchen kann, wo ich aktuell keine Zeit habe, mich reinzuarbeiten oder was ich einfach zu unausgegoren halte, und ich hab einfach keine Zeit oder keinen Bock oder beides, um mich nach jeden paar Commits da wieder reinzufrickeln um zu checken was eigentlich dieses mal wieder kaputt gegangen ist und dann irgendwelche Entwicklungsversionen von abhängigen Gems zu installieren und all der aufwändige Scheiß, weil irgendwann muss ich ja auch noch mal arbeiten und so denn von alleine verdient sich Geld ja bekanntlich nicht.
  • 33. Jahaa! Geht!
  • 34. rails_xss von NZKoz • Plugin für Rails 2.3 • Verwendet erubis-Gem zum erb-Parsen • Imitiert Default-Verhalten von Rails 3 • http://github.com/NZKoz/rails_xss/
  • 35. ? Fragen?
  • 36. ! Ralph von der Heyden http://rvdh.de @ralph