2016-04-07 15 views
0

Müşterilerimizin kullanması için geliştirdiğimiz bir Javascript dosyası var. Javascript pasajı, çalıştığı web sitesinin ekran görüntüsünü alır ve daha sonra jQuery.post()Ajax çağrısında Javascript Düzenlemesini Algılama

aracılığıyla sunucumuza geri gönderir. Sektörümüzün doğası, dosyanın mümkün olmadığından emin olmamız gerektiği anlamına gelir. müşteri tarafından oynanacak.

Buradaki sorun, ekran görüntüsünün sunucumuzda barındırılan javascript dosyası tarafından oluşturulduğundan ve kopyalandığından veya potansiyel olarak herhangi bir şekilde kurcalanmadığından emin olmamamız gerektiğidir.

kullandığımı komut konumunu alabilirsiniz biliyor:

var scripts = document.getElementsByTagName("script"), 
src = scripts[scripts.length-1].src; 

Ama bir istemci SRC o kısmı ile tokmak bu yardımcı olmayacaktır.

1) sonrası JavaScript herhangi bir şekilde tahrif değildi bizim sunucuya

2) barındırılan JavaScript dosyasından yapılmıştır:

Ben emin olmak için hangi yöntemleri kullanabilir.

+3

* 1) * * 2) adresinden nereden geldiğinden emin olmak için istek başlıklarını yalnızca doğrulayabilirsiniz. * Basitçe% 100 istemci tarafı Javascript'i doğrulayamazsınız. Bu, sürecin bir parçası. * 3) * Bu, SecurityExchange IMO için daha fazlasıdır. – Pogrindis

+1

Temel olarak, istemci tarafının sunucuya değil istemci denetiminin altında olduğunu kabul etmeniz gerekir. – apokryfos

+0

Kodu karıştırır ve yazıyla birlikte, metin içeriğinin bir kopyasını metin olarak gönderir, sonra da bu dosyanın kurcalanıp yapıştırılmadığını belirlemek için sunucunuzdaki bir sürümle karşılaştırabilir misiniz? [obfuscate js] (http://stackoverflow.com/questions/194397/how-can-i-obfuscateprotect-javascript) –

cevap

4

Kısa cevap: Yapamazsın

  1. .

  2. Yapamazsınız.

Her ikisi de, bir şeyleri istemci tarafına verdikten sonra, elinizin dışında kaldığı gerçeğinden kaynaklanır. Hiçbir şey, kullanıcının sizin ve onların makineleri arasında bir proxy koymasını engelleyecektir. İçeriği ya da içeriği, başlıkları, çerezleri, istekleri, yanıtları, vb. Kurcalayan bir süreci engelleyen bir süreç.

Ancak, uygulamanızı engelleyerek sertleştirebilirsiniz. XSS (kullanıcı girdisi üzerinden betiklerin enjeksiyonunu engeller), SSL kullanarak (bağlantının kurcalanmasını önler), CSP'u uygulayarak (yalnızca sayfada belirli bir içeriğe izin ver), CSRF belirteçleri ekleyebilir (formun sunucu tarafından yetkilendirildiğinden emin olun) ve diğer uygulamaların Kurcalanmış içeriğin geçmesini zorlaştırır. Ancak yine de bu, kararlı bir hackerın bir açılış bulmasını engelleyemez.

+0

# 1 ile ilgili olarak - Uzmanlığım değil, POST isteklerini imzalayamıyor musunuz? – Pogrindis

+0

Merak ettiğim şey, sunucumuz tarafından yetkilendirilen her yükte JS'ye gömülü bir tür benzersiz belirteç (kısa bir süre için geçerli) ile mümkün ise ve eğer ekran görüntüsü ekran görünümünde gönderildiğinde sunucu tarafında tekrar doğrulanıyorsa Bunun, talebimizin javascript’ten alınmasını sağlayabileceğini düşünüyor musunuz? – aaroncatlin

+2

@aaroncatlin: Kısa cevap: Hala hayır. JavaScript'inizin yapabileceği her şey, JavaScript'iniz gibi davranan başka bir kod yapabilir. – bobince

İlgili konular