none
Kullanıcıdan alınan web sites linkinin gösteriminde güvenli hale getirlmesi RRS feed

  • Soru

  • Merhabalar, açıkçası biraz acemiyim ve yeni yeni program yazmaya başladım.

    Şunu danışmak istiyorum, kullanıcıdan web page de göstermek üzere bir link adresi (www.youtube.com/watch/XSksl45465sdf5) girdiğinde bunu tekrar web page de göstermek istediğimizde (ki tıklansın da istiyoruz bu aynı zamanda bir link) <a href=".......">link</a> eğer kullanıcı www.youtube.com/watch/sdkfsllsdfs343234lsfs adresi yerine zararlı bir kod yazmış ise nasıl engelleyebiliriz ?

    HtmlEncode() ne denli işe yarar ? Eğer javascript(alert(kdkkk)) gibi birşey yazmışsa link olarak bu sefer htmlencode() da fayda etmiyor...

    Ne önerebilirsiniz ?

    3 Mayıs 2017 Çarşamba 17:48

Yanıtlar

  • Sizi anlıyorum, yani ne demek istediğinizi. Ama şunu anlamadım (affola); bunu nasıl yapabilecek ? Yazılımsal bir açık mı, hali hazırda MVC ile tasarlanan bir site düşünün, hatta bırakın bu site Visual Studio nun taslak şablonu olsun. Eğer sitede yanlış tasarlanmış bir yapı yok ise, dosyayı yüklemeyi ya da dizinlere ulaşmayı nasıl başaracak onu çözemedim. Mazur görün. Vakıf olmadığımdan soruyorum. Teşekkürler.
    4 Mayıs 2017 Perşembe 15:55

  • Yok hayır, javascript kullanıyorlar. Yandex Map, Google Map, haritalar için hem javascript kullanıyor hem de kurumunuzun telefon numarasını ve web adresini verin linkini paylaşayım diyorlar.

    Ben seni yanlış anlamışım galiba. Site içeriğini web page de göstermek istiyorum dediğinde bir çeşit tünel tarzı bir site yapmaya çalışıyorsun zannetim (vtunnel.com, ktunnel.com gibi). Bu durumda dediğim gibi adresin https:// veya http:// ile başlayıp başlamadığını kontrol edersin yoksa sen eklersin. Kullanıcı javascript kodu girse bile http://alert('deneme'); şeklinde olacağı için çalışmayacaktır. Açılan sayfada ne yaptığı zaten onun problemi seni bağlayan bir şey olmaz. Regular Expression kullanarak rahatlıkla yapabilirsin
    5 Mayıs 2017 Cuma 06:35
  • evet öyle yaparsan sorun olmayacaktır katılıyorum..kötü niyetli dosyalar oldukça çok...olcay güzel güzel anlatmış tebrikler...
    5 Mayıs 2017 Cuma 07:56

Tüm Yanıtlar

  • Bunun kesin bir çözümü yok. Kullanıcıdan bir web adresi istiyorsunuz daha doğrusu çalıştırılacak/yorumlanacak bir içerik istiyorsunuz. Bu durumda sorgusuz sualsiz isteği yerine getireceksiniz ya da kullanıcı girişine belirli şartlar koyacaksınız. Örneğin http:// veya https:// ile başlasın gibi. Bu durumda doğrudan javascript kodu giremez ama adresini yazdığı sayfada javascript kodu varsa bunlar çalışır. 

    Eğer sadece örnekte verdiğiniz gibi youtube video linkleriyle çalışacaksanız bu durumda hiç risk almayın video linkinden Id bilgisini alın (Örnekte :XSksl45465sdf5) bunu https://www.youtube.com/embed/VIDEOID şeklinde bir link oluşturup bu linke istek gönderin. Bu durumda korkacak bir şeyiniz kalmaz.

    4 Mayıs 2017 Perşembe 07:50
  • Teşekkür ederim öncelikle yanıtladığınız için.

    Firma rehber siteleri var örneğin. Sizin bir domaininiz oldugunu varsayalım; olcayguzelweb.com.tr gibi.

    Bunu firmalar sitelere kayıt ediyor bildiğiniz üzere. Daha sonra da firma rehberinde;

    firma telefon: +90 212 .....

    firma web adres : www.olcayguzelweb.com.tr

    gibi gösterebiliyor.

    Bu durumda bilinmeyen / tanınmayan bir adresten (adres yerine yazılabilecek koddan korunmak için) RegEx mi çare olur yoksa başkaca yöntemler mi ?

    Çünkü bildiğiniz üzere böyle siteler mevcutta var. Yani domain isteyen ve link olarak sunan.

    Saygılarımı sunarım.



    4 Mayıs 2017 Perşembe 10:47
  • Bu durumda doğrudan javascript kodu giremez ama adresini yazdığı sayfada javascript kodu varsa bunlar çalışır. 

    Adresi yazdığı sayfada derken adres linkinki ile beraber yazabileceği javascript kodundan mı bahsediyorsunuz, yoksa yazdığı adres url sinin çalışması ile birlikte açılacak olan domaindeki sayfadan mı bahsediyorsunuz ?

    Eğer yazdığı linkin çalışması ile açılacak olan sitede bir javascript kodu var ise, bize nasıl bir zararı olabilir ki ?

    Teşekkür ederim.

    4 Mayıs 2017 Perşembe 10:53
  • Doğru o tür siteler mevcut ama bunlar bildiğim kadarıyla javascript kullanmana izin vermiyorlar. Bu durumda şöyle bir yol izleyebilirsin kullanıcı sana web adresi verdiği zaman öncelikle bu adresin içeriğini alırsın. Sonra içindeki <script> </script> ve <script /> arasını temizlersin kullanıcıya o şekilde gösterirsin. Bunu da Regular Expression ile yapabilirsin. Şu an aklıma başka yöntem gelmiyor. Burada da benzer bir soruya cevap verilmiş. Belki yol gösterir.
    4 Mayıs 2017 Perşembe 11:22
  • Tam otomasyon olsun diyorsanız Paralı hizmetler var. Websense benzeri. Oralardan linki kontrol etirebilirsiniz. Yoksa dediğinizi ancak kişisel kontrolden geçirdikten sonra yayınlayarak çözebilirsiniz.

    pgnchess.com

    dergikapaklari.com

    4 Mayıs 2017 Perşembe 11:27
  • Doğru o tür siteler mevcut ama bunlar bildiğim kadarıyla javascript kullanmana izin vermiyorlar. Bu durumda şöyle bir yol izleyebilirsin kullanıcı sana web adresi verdiği zaman öncelikle bu adresin içeriğini alırsın. Sonra içindeki <script> </script> ve <script /> arasını temizlersin kullanıcıya o şekilde gösterirsin. Bunu da Regular Expression ile yapabilirsin. Şu an aklıma başka yöntem gelmiyor.
    Stackoverflow da birine danışmıştım, adam htmlencode kullansan da kullanmasan da fark etmez, adam <script> yazmaz ki javascript(alert(message)) yazsa bile browser onu çalıştıracaktır. HTML Encode a güvenme boşuna demişti.
    4 Mayıs 2017 Perşembe 11:41
  • Tam otomasyon olsun diyorsanız Paralı hizmetler var. Websense benzeri. Oralardan linki kontrol etirebilirsiniz. Yoksa dediğinizi ancak kişisel kontrolden geçirdikten sonra yayınlayarak çözebilirsiniz.

    Parasından değil, profesyonel görünümlü bir sitenin başka bir hizmet kullanması komik kaçacaktır. Bir şekilde başımın çaresine bakmam gerekecek. :)
    4 Mayıs 2017 Perşembe 11:44
  • Doğru o tür siteler mevcut ama bunlar bildiğim kadarıyla javascript kullanmana izin vermiyorlar. Bu durumda şöyle bir yol izleyebilirsin kullanıcı sana web adresi verdiği zaman öncelikle bu adresin içeriğini alırsın. Sonra içindeki <script> </script> ve <script /> arasını temizlersin kullanıcıya o şekilde gösterirsin. Bunu da Regular Expression ile yapabilirsin. Şu an aklıma başka yöntem gelmiyor

    Yok hayır, javascript kullanıyorlar. Yandex Map, Google Map, haritalar için hem javascript kullanıyor hem de kurumunuzun telefon numarasını ve web adresini verin linkini paylaşayım diyorlar.

    4 Mayıs 2017 Perşembe 11:45

  • Adresi yazdığı sayfada derken adres linkinki ile beraber yazabileceği javascript kodundan mı bahsediyorsunuz, yoksa yazdığı adres url sinin çalışması ile birlikte açılacak olan domaindeki sayfadan mı bahsediyorsunuz ?

    Eğer yazdığı linkin çalışması ile açılacak olan sitede bir javascript kodu var ise, bize nasıl bir zararı olabilir ki ?

    Teşekkür ederim.

    Kullanıcı senin sunucuna dosya yükleyebilir. Daha sonra bu dosyayı çalıştırabilir. RFI (Remote File Inclusion) ve LFI (Local File Inclusion) olarak adlandırılır. 
    4 Mayıs 2017 Perşembe 11:51

  • Adresi yazdığı sayfada derken adres linkinki ile beraber yazabileceği javascript kodundan mı bahsediyorsunuz, yoksa yazdığı adres url sinin çalışması ile birlikte açılacak olan domaindeki sayfadan mı bahsediyorsunuz ?

    Eğer yazdığı linkin çalışması ile açılacak olan sitede bir javascript kodu var ise, bize nasıl bir zararı olabilir ki ?

    Teşekkür ederim.

    Kullanıcı senin sunucuna dosya yükleyebilir. Daha sonra bu dosyayı çalıştırabilir. RFI (Remote File Inclusion) ve LFI (Local File Inclusion) olarak adlandırılır. 
    Bunu hangi senaryo ile yapabilir ? Örneğin, Dosya Seç butonuna tıkladı ve dosya yükledi. Gelen dosya byte kod a dönüştürülerek stored procedure e gönderildi. Dosya adı da (genelde alışveriş siteleri siliyor dosya adlarını) silindi başka bir ad takıldı. Söylediklerin hala geçerli olur mu bu durumda ?
    4 Mayıs 2017 Perşembe 11:57
  • Kötü niyetli bir uygulamanın dosya yüklemesi için kullanıcının bir yerlere tıklamasına (Dosya Aç gibi) ihtiyacı yok ki. Dosya aç işlevi sadece kullanıcı dosyanın tam adını yazmak zorunda kalmasın diye yapılmış bir şey c:\Windows\System32\jklfjdslkfjdkls.dll gibi elle yazarsın olur biter. Dosya Aç'ın tek yaptığı bu dosya yolunu senin yerine yazması. Dosya yüklemek için yazma yetkisinin olduğu bir dizin bulması yeterli. İlla ki exe dosyasıda yüklemek zorunda değil. *.html dosyası da yükleyebilir. Senin index dosyanı değiştirebilir. MVC kullanıyorsan *.cshtml dosyanı değiştirir. Bu dosya içinde bir adres/dizin vb yazdıysan bunları değiştirir uygulaman yanlış çalışır. 


    4 Mayıs 2017 Perşembe 13:03
  • Tam otomasyon olsun diyorsanız Paralı hizmetler var. Websense benzeri. Oralardan linki kontrol etirebilirsiniz. Yoksa dediğinizi ancak kişisel kontrolden geçirdikten sonra yayınlayarak çözebilirsiniz.

    Parasından değil, profesyonel görünümlü bir sitenin başka bir hizmet kullanması komik kaçacaktır. Bir şekilde başımın çaresine bakmam gerekecek. :)

    Ben sizi yanlış anladım sanırım. Benim anladığım kişinin web sitesi adresi olarak yasal olmayan bazı adresleri yazmasına engel olmak diye anladım. Yani şirket web sitesi diye girip bir porno veya hack/pishing sitesinin adresini yazmasına engel olmak/ kontrol etmek olarak.

    Eğer doğru anlamış ise bu hizmetin kullanıldığını kullanıcı nereden bilecek? Siz geri planda linki aldıktan sonra kontrolu yapacaksınız onay verilirse kaydedeceksiniz/göstereceksiniz verilmez ise göstermeyecekseniz.


    pgnchess.com

    dergikapaklari.com

    4 Mayıs 2017 Perşembe 14:37
  • Hımmm yok, kötü niyet bildirimi olduğunda hesabı kapatılır olur biter. Zaten kayıt olurken telefon numarası istiyorum ve sms ile doğruluyorum. Bir telefon numarası engellenmiş olur başka bir numara ile yeni bir hesap açar o da engellenir. Ben sadece www....com.tr yerine javascript(alert(merhaba)) yazmasını (veya türevlerini) nasıl engellerim (çünkü htmlencode işe yaramıyor) onu düşünüyorum. RegEx den başka çare var mı metodolojik olarak araştırıyorum...
    4 Mayıs 2017 Perşembe 16:00

  • Yok hayır, javascript kullanıyorlar. Yandex Map, Google Map, haritalar için hem javascript kullanıyor hem de kurumunuzun telefon numarasını ve web adresini verin linkini paylaşayım diyorlar.

    Ben seni yanlış anlamışım galiba. Site içeriğini web page de göstermek istiyorum dediğinde bir çeşit tünel tarzı bir site yapmaya çalışıyorsun zannetim (vtunnel.com, ktunnel.com gibi). Bu durumda dediğim gibi adresin https:// veya http:// ile başlayıp başlamadığını kontrol edersin yoksa sen eklersin. Kullanıcı javascript kodu girse bile http://alert('deneme'); şeklinde olacağı için çalışmayacaktır. Açılan sayfada ne yaptığı zaten onun problemi seni bağlayan bir şey olmaz. Regular Expression kullanarak rahatlıkla yapabilirsin
    5 Mayıs 2017 Cuma 06:35
  • evet öyle yaparsan sorun olmayacaktır katılıyorum..kötü niyetli dosyalar oldukça çok...olcay güzel güzel anlatmış tebrikler...
    5 Mayıs 2017 Cuma 07:56