Antisamy, kötü niyetli kullanıcıların web sitelerine zararlı HTML kodlarını göndermelerini engelleyen bir API’dir. Genellikle zararlı kodlardan kasıt Javascript kodlarıdır ve Antisamy kütüphanesi sayesinde zararlı Javascript kodlarının web sitemize gönderilmesini engelleyebiliriz. Bu kütüphaneyi bir Java projesinde kullanmak için, eğer Maven kullanıyorsak aşağıdaki bağımlılığı pom.xml dosyamıza eklememiz yeterlidir:
1 2 3 4 5 |
<dependency> <groupId>org.owasp</groupId>; <artifactId>antisamy<artifactId/> <version>1.4</version> </dependency> |
(maven kullanmıyorsanız ilgili JAR dosyasını şu linkten indirebilirsiniz: http://mvnrepository.com/artifact/org.owasp/antisamy/1.4)
Antisamy’nin örnek kullanımı aşağıdaki sınıfta verilmiştir:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
import org.owasp.validator.html.AntiSamy; import org.owasp.validator.html.CleanResults; import org.owasp.validator.html.Policy; import org.owasp.validator.html.PolicyException; public class XssCheckUtil { private static Policy policy; public static String cleanInputParam(final String param) throws PolicyException{ final Policy policy = getPolicy(); final AntiSamy as = new AntiSamy(); if (param != null) { final CleanResults cleanResults = as.scan(param, policy); return cleanResults.getCleanHTML(); } else { return null; } } public static Policy getPolicy() throws PolicyException{ if (policy == null) { policy = Policy.getInstance(XssCheckUtil.class.getResource("antisamy-slashdot-1.4.4.xml")); } return policy; } } |
Bir HTML input parametrenizin içerisindeki zararlı kodları şu şekilde temizleyebilirsiniz:
1 |
String myInput= XSSCheckUtil.cleanInputParam(myInput); |