2012-03-09 16 views
6

Bir ray uygulamasında, kullanıcılar olayları oluşturabilir ve harici olay sitesine bağlanmak için bir URL gönderebilir.Rayların XSS'yi engellemek için URL'yi temizleme

URL'leri XSS bağlantılarını engellemek için nasıl temizlerim? peşin

sayesinde raylar sterilize yöntemiyle

@url = "javascript:alert('XSS')" 
<a href="<%=sanitize @url%>">test link</a> 

cevap

1

Sen Rails'in kullanabilirsiniz bazı temel sınırlamalar için sanitize yöntemi ile önlenebilir değildir XSS

örnek.

Veya daha fazla seçenek için rgrove'un sanitize taşını kullanabilirsiniz.

Bu yardımcı olur umarım.

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

Bu bana verir: href kez sterilize

+0

@url tüm bilinen zararlı özelliklerin bağlantınız temizler

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

örneğin

için. Sorumluluklarımı rayların sanitize yöntemini zaten test ettiğimi yansıtmalıyım. – rickypai

+1

rgrove'nin sanitize gem'i, eğer Rails sanitize'den daha fazla kontrole ihtiyacınız varsa gerçekten size müsaade eder. Her iki durumda da, Ben'in yanıtı gibi, sadece URL'nin kendisi değil, tüm bağlantı için html'i dezenfekte etmeniz gerekir. – antinome

5

deneyin gibi bir etiket zaten

<a>xss link</a> 
1

sanitize çalışır. Yani bir URL’yi kendiniz dezenfekte edemezsiniz, ancak kötü niyetli bir URL’ye sahip bir bağlantıya sahip olan bir html parçasını sanitize edebilirsiniz. ": Alert ('XSS') javascript" xss link çalışmıyor =

İlgili konular