folder Tahribat.com Forumları
linefolder Web sitesi Güvenliği, DOS - DDOS Saldırıları...
linefolder XSS Açıklarından Korunma Yolları Hakkında Bazı Sorular



XSS Açıklarından Korunma Yolları Hakkında Bazı Sorular

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek

    Selamlar, sitedeki bir input'un server'dan dönüşüne

    http://jsxss.com/en/starter/quickstart.html

    buradaki gibi basit bir şekilde ekleme yaptım. 

    <script>alert("XSS")</script>

    yukarıdaki kodu engelledi felan tamam ama 

    "><b>Bold</b>
    '><u>Underlined</u>

    gibi css/still kodlarını engellemiyor, yazı chatpanelde yine bold ya da altıçizgili çıkıyor. bu nasıl bir xss sanitizer? ya da ben bi'şeyleri çok yanlış biliyorum. (google caja'nın html-css-sanitizer-minified.js si de aynı davranıyor).

     

    ek olarak validation için https://github.com/chriso/validator.js kullanıyorum. bununla escape yaptığım zaman (içinde sanitizer var - "escape(input) - replace <, >, &, ', " and / with HTML entities." diyor ) bold ya da underlined olarak gelmiyor, yazı adamın yazdığı gibi çıkıyor. yani işe yarıyor?! escape kullanmam xss için yeterli bir önlem olur mu?

    ama validator.js açıklamasında şu var :

    XSS Sanitization

    XSS sanitization was removed from the library in 2d5d6999.

    For an alternative, look at Yahoo's xss-filters library.

    yani xss sanitizasyon yok diyor ama var gibi de.. kafam karıştı..

    bilgi eksikliğinden kaynaklı yanlış sorularım olmuş olabilir, kusra bakmayın.

    okuduğunuz için çok teşekkür ederim..

    RockZs tarafından 27/Kas/15 22:22 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek

    Xss client-side tarafında engellenmez server tarafında kodu yazacaksın.

    Regex ile <(.*)> seçip bunu replace ettirerek tüm html kodlarından kurtulabilirsin.

    Benim tavsiyem ise php.jsde bulunan htmlescape kodunu kullanman. Node.js için mükemmel bir fonksiyon arşivi php.js istersen her alanda kullanabilirsin.


    iyibu! yeniden..
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    babayarisi
    babayarisi's avatar
    Kayıt Tarihi: 17/Mart/2014
    Erkek

    clientside ı unut hocam iş serverside da projen nodejs mi ona göre konuşacam

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek
    babayarisi bunu yazdı

    clientside ı unut hocam iş serverside da projen nodejs mi ona göre konuşacam

    evet hocam node.js.

    client'ten server'a code injection mı yapıyorlar, bu yüzden mi server-side öneriyorsunuz?

    teşekkür ederim.

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek

    burada (https://www.npmjs.com/package/secure-filters) da "anti-xss" veri akışı için sunucu tarafında önlem alınmış, bir bildikleri var herhalde.

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    babayarisi
    babayarisi's avatar
    Kayıt Tarihi: 17/Mart/2014
    Erkek

    Hocam client side her zaman manipüle edilmeye müsait filtreleme işlemlerini server side yapman kuralları senin koymanı sağlar nodejs tecrübem yok fakat mantık belli "girdiyi escape et öyle al - çıktıyı escape et öyle yaz"

    https://www.npmjs.com/package/secure-filters şunu bir dene hocam çok gizli birşey değilse test edelim ne kadar başarılı görelim.

     

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek
    babayarisi bunu yazdı

    Hocam client side her zaman manipüle edilmeye müsait filtreleme işlemlerini server side yapman kuralları senin koymanı sağlar nodejs tecrübem yok fakat mantık belli "girdiyi escape et öyle al - çıktıyı escape et öyle yaz"

    https://www.npmjs.com/package/secure-filters şunu bir dene hocam çok gizli birşey değilse test edelim ne kadar başarılı görelim.

     

    zaten ona bakıyorum hocam şu anda, yukarıdaki resmi de o sayfadan almıştım :)

    bunu sanitizer, validator.js yi de hem browser hem server taraflı validator olarak kullanacağım.

    xss'yi tam olarak anladığımı söyleyemem. demek hala bilmediğim birşeyler var, zamanla öğreniriz artık.

    mesela browser'da bir chat panelinin server çıkışında browser tarafında gelen veriyi escape yapıp ilgili div'e öyle yazdıruıyorum, alert'ler felan çalışmıyo'. amaçlanan şey tam olarak bu değil sanırım..

    ek: nette araştırıyorum ama cevabını bulamadım. kimse neden server'da xss korunması uygulanmasının nedenini yazamıyor. http://security.stackexchange.com/questions/73689/is-xss-a-server-side-or-client-side-vulnerability mesela bu adreste ağır saçmalayanlar olmuş. performans için server'da çalıştır bu xss nanesini diyor. be mübarek server'ın canı can değil mi? 

    anladığım kadarıyla bu xss açığı server'da pek bi etkili değil. tbt'de eski yazılanları da okudum, bu kanıya vardım. benim sitemde de çalınacak bi' cookie felan da yok. adam en fazla karşşı tarafa alert verdirir, ne bileyim css 'lerle oynar, divleri hidden felan yapar..

    browser tarafında veri giriş ve çıkışlarında validasyon ve sanitizasyon uygulayıp geçmek istiyorum. server'ı yormaya niyetim yok. ne dersiniz? ille de server diyorsanız nedenini lütfen açıklayın, vallaha bulamadım..

    server'da zaten illaki gelen veriyi yorumlayacağım, yoksa gönderilen saçma bi sokette node.js exception veriyo'.

    RockZs tarafından 28/Kas/15 11:45 tarihinde düzenlenmiştir
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    babayarisi
    babayarisi's avatar
    Kayıt Tarihi: 17/Mart/2014
    Erkek

    Çünkü hocam sen bir filtreleme yapıyorsun "girdi zararlıysa bana gönderme(client-side)" demek ile "girdi zararlıyla çalıştırma(server-side)" demek arasında çok far var.

    Client side da uyguladığın herşey benim tarayıcımda gerçekleştiği için istediğim gibi şekillendirebilirim mesajı senin formundan değilde kendi yaptığım formdan kendi kurallarıma göre senin sunucuna post veya get ile yollayabilirim o zamanda böyle bir manipülasyonun self xss olarak kalması için server-side da farklı mekanizmalar kullanmak gerekebilir(referer kontrolu ile formun sadece senin sitenden tıklandığında çalışması gibi ki oda bypass ediliyor)  yada form token kullanmak gibi iş uzuyor yani (gerçi mantıklı olan tüm bunların aynı anda kullanılması tabi).

    Tabiki senin sistemi görmedik bilmiyoruz hocam çalınacak cookie yok bende demişsin ama xss i sadece cookie çalıp başkasının hesabına girmek olarak değerlendirmemek gerek..

    Söyleyeceklerim bu kadar saygılar.

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek
    babayarisi bunu yazdı

    Çünkü hocam sen bir filtreleme yapıyorsun "girdi zararlıysa bana gönderme(client-side)" demek ile "girdi zararlıyla çalıştırma(server-side)" demek arasında çok far var.

    Client side da uyguladığın herşey benim tarayıcımda gerçekleştiği için istediğim gibi şekillendirebilirim mesajı senin formundan değilde kendi yaptığım formdan kendi kurallarıma göre senin sunucuna post veya get ile yollayabilirim o zamanda böyle bir manipülasyonun self xss olarak kalması için server-side da farklı mekanizmalar kullanmak gerekebilir(referer kontrolu ile formun sadece senin sitenden tıklandığında çalışması gibi ki oda bypass ediliyor)  yada form token kullanmak gibi iş uzuyor yani (gerçi mantıklı olan tüm bunların aynı anda kullanılması tabi).

    Tabiki senin sistemi görmedik bilmiyoruz hocam çalınacak cookie yok bende demişsin ama xss i sadece cookie çalıp başkasının hesabına girmek olarak değerlendirmemek gerek..

    Söyleyeceklerim bu kadar saygılar.

    öncelikle teşekkürü bir borç bilirim. senin yazdıkların ışığında diğer arkadaşlara kolay olsun diye madde madde soruyorum:

    1) benim sunucuma post&get yollamak işe yarar mı emin değilim çünkü html statik sayfa kullanıyorum ve node.js değil başka bir web sunucu (AWS S3) den gidiyor sayfa; node.js üzerinden iletişimim sadece socket.io yani soket üzerinden?

    2) soket iletişimi için zaten sunucu içinde gelen veriyi kontrol ettirmem şart, yoksa adam consola yazacağı hatalı bir emit ile zaten node.js i göçertebiliyor. xss 'nin sunucuya etkisi böyle birşey ise zaten yapacağım, sunucu tarafında endişelenmemi gerektiren başka bir husus yok mu xss ile ilgili?

    3) client-side de sen (sen derken yani herkes) kendi tarayıcında istediğin değişikliği yapabilirsin tabi ama ben diyorum ki mesela bir chat sayfasında server'dan gelen veriyi diğer başka bir client, div içine yazmadan önce zaten yorumlayacak (escape edecek). burada nasıl bir etkin olabilir?

    bunları kendimi haklı çıkartmak için değil, kafamdaki sorunları cevaplayabilmem için soruyorum. rahatsız ettiysem kusra bakmayın.

    sevgilerle..

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    babayarisi
    babayarisi's avatar
    Kayıt Tarihi: 17/Mart/2014
    Erkek

    Bu soruları nodejs tecrübesi olan biri cevaplasa daha yaralı olur aslında.

    1) benim sunucuma post&get yollamak işe yarar mı emin değilim çünkü html statik sayfa kullanıyorum ve node.js değil başka bir web sunucu (AWS S3) den gidiyor sayfa; node.js üzerinden iletişimim sadece socket.io yani soket üzerinden?

    Yazdıklarım genel tanımlamalar hocam senin sistemi görmeden sana göre bir saldırı senaryosu üretemeyiz en azından ben üretemem.

    2) soket iletişimi için zaten sunucu içinde gelen veriyi kontrol ettirmem şart, yoksa adam consola yazacağı hatalı bir emit ile zaten node.js i göçertebiliyor. xss 'nin sunucuya etkisi böyle birşey ise zaten yapacağım, sunucu tarafında endişelenmemi gerektiren başka bir husus yok mu xss ile ilgili?

    Yok gibi görünüyor

    3) client-side de sen (sen derken yani herkes) kendi tarayıcında istediğin değişikliği yapabilirsin tabi ama ben diyorum ki mesela bir chat sayfasında server'dan gelen veriyi diğer başka bir client, div içine yazmadan önce zaten yorumlayacak (escape edecek). burada nasıl bir etkin olabilir?

    Serverdan dönen veriyi düzenlersem self xss olur saldırı yapmış olmam o yüzden o konuda bir sıkıntı yok tabi giden veri nodejs tarafında (foksiyonları bilmiyorum ama) eval veya exec benzeri bir mekanizmadan geçip dönmüyorsa.

     

    Bayağı üstüne yorum yaptık ama şuan bunlar hep hurafelerden ibaret net bir şekilde şöyle olur böyle olur şekilnde konuşabilmek için live analiz gerek.

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RockZs
    RockZs's avatar
    Kayıt Tarihi: 30/Haziran/2002
    Erkek
    babayarisi bunu yazdı

    Bu soruları nodejs tecrübesi olan biri cevaplasa daha yaralı olur aslında.

    1) benim sunucuma post&get yollamak işe yarar mı emin değilim çünkü html statik sayfa kullanıyorum ve node.js değil başka bir web sunucu (AWS S3) den gidiyor sayfa; node.js üzerinden iletişimim sadece socket.io yani soket üzerinden?

    Yazdıklarım genel tanımlamalar hocam senin sistemi görmeden sana göre bir saldırı senaryosu üretemeyiz en azından ben üretemem.

    2) soket iletişimi için zaten sunucu içinde gelen veriyi kontrol ettirmem şart, yoksa adam consola yazacağı hatalı bir emit ile zaten node.js i göçertebiliyor. xss 'nin sunucuya etkisi böyle birşey ise zaten yapacağım, sunucu tarafında endişelenmemi gerektiren başka bir husus yok mu xss ile ilgili?

    Yok gibi görünüyor

    3) client-side de sen (sen derken yani herkes) kendi tarayıcında istediğin değişikliği yapabilirsin tabi ama ben diyorum ki mesela bir chat sayfasında server'dan gelen veriyi diğer başka bir client, div içine yazmadan önce zaten yorumlayacak (escape edecek). burada nasıl bir etkin olabilir?

    Serverdan dönen veriyi düzenlersem self xss olur saldırı yapmış olmam o yüzden o konuda bir sıkıntı yok tabi giden veri nodejs tarafında (foksiyonları bilmiyorum ama) eval veya exec benzeri bir mekanizmadan geçip dönmüyorsa.

     

    Bayağı üstüne yorum yaptık ama şuan bunlar hep hurafelerden ibaret net bir şekilde şöyle olur böyle olur şekilnde konuşabilmek için live analiz gerek.

    yorumların için sağol hocam. node.js de eval yok ya da exec kullanmıyorum. gelen veriler if ile kontrol edilip ona göre işlem yapılıyor, ben de bu hususa zaten dikkat edeceğim.

    vaktin olursa bi' ara birlikte analiz edelim hocam ama önce şu işi biraz daha oturtayım.

    sevgiler..

Toplam Hit: 3827 Toplam Mesaj: 12
iks es es