Operasyon uyarısı, sor ve onayla. Çekirdek Javascript ile etkileşim. JavaScript - Teknik uyarısı, istem ve onaylama Basit bir kurala kural ekleme

Bir noktada, pencere nesnesinin yöntemlerini öğreneceğiz: alert(), komut() ve onay().

uyarı() yöntemi

"OK" butonu ile atanan bildirimlerden bir sonraki diyalog penceresinin ekranda görüntülenmesi için yapılan atamaların alert() metodu. Önemli bilgileri coristuvach'a iletmek için muzaffer olabilir.

window.alert(Parametre_1);

alert() yönteminin dile özgü bir parametresi olabilir - iletişim kutusunda göründüğü şekliyle uyarı metni. Danimarka yöntemi, vikonnannya'dan sonra hiçbir şeyi değiştirmez.

Örneğin, diyalog penceresinin önünde kuvvete karşı bastırıldığında siteyi incelemek için gösterilir: web sitesine git

onayla() yöntemi

Pencere nesnesinin onay() yöntemi, atanan istemlerden ve "Tamam" ve "Kontrol Et" düğmelerinden ekranda iletişim kutusunu görüntülemek için kullanılır. Onay için muzaffer olabilirsiniz, böylece coristuvach'tan chi ієї chi іnshої dії kazanmanıza izin vermesini isteyebilirsiniz.

var resultConfirm = onayla(Parametre_1);

Bu yöntemin bir parametresi vardır - iletişim kutusunda gösterileceği gibi hatırlatıcının metni.

onay() yöntemi, viconn'unun sonucu (resultConfirm) olarak iki değerden birini döndürür:

  • "OK" tuşuna basarak koristuvach'a sadık kalın;
  • false , koristuvach "Skasuwati"ye basmış veya yogoyu kapatmış gibi.

Örneğin, id="resultConfirm" öğesinde, iletişim penceresindeki "Tamam" düğmesine tıklamanın sonucu:

istem() yöntemi

Bilgi istemleri içeren bir iletişim penceresi, veri girmek ve "Tamam" ve "Konuş" düğmelerini kullanmak için bir metin alanı görüntülemek için komut istemi() atama yöntemi. Vono, bir koristuvach'ın verilerini talep etmek için tanınır.

var sonuçPrompt = bilgi istemi(Parametre_1, Parametre_2);

Bu yöntemin iki parametresi vardır:

  • hatırlatıcı, diyalog penceresinde gösterileceği gibi. Tsey parametresi є obov'yazykovym i stit povіdomlennya, "ne konuşulacak" konusunda, yakі danі koristuvach metin alanına girmekten suçlu;
  • diğer parametre konuşma dilinde değildir ve giriş iletişim kutusunda gösterileceği gibi bir cob değeri eklemek için kullanılabilir.

İstem() yöntemini kullanarak aşağıdaki verileri değiştirebilirsiniz:

  • metin değerleri - böylece giriş alanına veriler girilir ve "Tamam" a basılarak koristuvach;
  • boş satır - giriş alanı verileri ve "OK" tuşuna basarak coristuvach'ı kaçırmaz;
  • null - tıpkı "Skasuvati" yazmak veya pencereyi kapatmak gibi, verinin metin alanına girilmiş olup olmadığı önemli değildir.

Not: uyarı() , onay() veya komut() modal yöntemlerinden birinin sonucu olan bir iletişim kutusu, yani. Koristuvach'ın noktanın Batkiv ekine (tarayıcı) erişimini engeller, koristuvach'ın rıhtımları diyalog penceresini kapatmaz.

Örneğin, koristuvach'ın adından sorgulanır ve c id="nameUser" metin öğesinin sonucu olarak gösterilir:

Örneğin, koristuvach'tan 8 sayısını tahmin etmesini isteyin:

... Numarayı tahmin et

Siteler Arası Komut Dosyası Oluşturma (XSS) - Web tarafında istemci tarafında (JavaScript) görülen, kodda kullanıldığı şekliyle, başkaları tarafından bakıldığı gibi fark.

Bu çekişme, web sayfasına eklemek için aşırı güçlü bir corystuvach gibi, veri filtreleme eksikliğinden sorumlu tutuluyor. Belirli bir örnek üzerinde anlamak daha kolaydır. Bir misafir defterinin, dışarıdan yansıma yapan bir tür coristuvacha'dan veri kabul ettiği bilinen bir program olup olmadığını tahmin edin. Ziyaretçi defterinin girilecek verileri hiçbir şekilde revize etmediği veya filtrelemediği, sadece onları yansıttığı açıktır.

En basit betiğinizi ekleyebilirsiniz (daha basit bir şey yoktur, PHP'de kötü betikler yazabilirsiniz - birinin bunu yapması için çok zengindir). Ancak zaten yeterince hazır seçenek var. Örneğin Dojo ve OWASP Mutillidae II'yi tanımaktan bahsediyorum. Benzer bir örnek var. Bağımsız Dojo ortamında, istemler için tarayıcıya gidin: http://localhost/mutillidae/index.php?page=add-to-your-blog.php

Bazı koristuvachіv vvіv'a ne dersiniz:

Ardından web sayfası görüntülenecektir:

Viyana! Web siteniz gereklidir.

Örneğin, kodu şu şekilde girin:

Viyana! Web siteniz gereklidir.

Bu şöyle görünmelidir:

Tarayıcılar, çok sayıda siteden anonim çerezler kaydeder. Sitenin dış görünümü, yalnızca kendisi tarafından kaydedilen çerezleri kaldırabilir. Örneğin, example.com sitesi tarayıcınızdan bazı tanımlama bilgileri kaydetti. Başka bir.com sitesine giderseniz, o site (istemci ve sunucu komut dosyaları) tanımlama bilgilerine erişemez, bu nedenle example.com kaydedilir.

example.com, XSS'den önce ayrıştırılırsa, bu, yeni JavaScript koduna başka bir şekilde geçebileceğimiz anlamına gelir ve bu kod, example.com sitesinin adına sarılır! Tobto. Bu kod, örneğin example.com sitesindeki tanımlama bilgilerine erişimi kaldırır.

Sanırım herkes JavaScript'in yerlilerin tarayıcılarında kullanıldığını hatırlıyor, yani. XSS'nin varlığı için, shkidlivy kodunun uygulanması, web sitesinin tarafını açan koristuvach verilerine erişimi engeller.

Uygulama kodu, JavaScript'i kullananların tümünü içerir, ancak kendisi:

  • baktığınız sitenin tanımlama bilgilerine erişimini reddeder
  • eski görünümlü tarafta bir değişiklik yapabilirsiniz
  • panoya erişimi reddediyor
  • JavaScript'teki programları kullanabilirsiniz, örneğin, kі-logger'lar
  • BeEF'e abone olun
  • ki.

En basit çerez örneği:

Yok canım, Alarm XSS için vikoristovuetsya daha az. Gerçekten shkіdlive korisne navantazhennya zdіysnyuє prihovanі dії. Davetsiz misafirin Vaughn prihovanno sv'yazuetsya z vіddalenim sunucusu ve yeni çalınan verilere iletir.

Vidi XSS

Daha da önemlisi, kokuşmuş olanlar için XSS'yi anlamanız gerekir:

  • Kaydet (gönder)
  • Vidobrazhenі (Kalıcı olmayan)

Eskiye bir örnek:

  • Saldırganın tanıttığı, konuk defterine (yorum, forum, profil) özel olarak oluşturulmuş bir mesaj, sunucuya nasıl girileceği, coristuvachi tarafın görüşünü sorarsa en kısa sürede sunucudan zavantazhuetsya.
  • Saldırgan, örneğin SQL enjeksiyonu yoluyla veri sunucusuna erişimi aldı ve kötü niyetli JavaScript kodu (kilometre veya BeEF ile) göz önüne alındığında, coristuvachev gibi görünen verileri ele geçirdi.

Saygısızlığa bir örnek:

  • Sitede, arama sonuçlarıyla aynı zamanda “Aradınız: [arama dizisi]” kshtalt'ında gösterilen bir arama var, bu verilerle uygun bir sıraya göre filtrelenmezler. Böyle bir taraf sadece onu zorlayabilenler için kullanılıyorsa, saldırgan başka bir coristuvacha sitesine güç gönderene kadar saldırı çalışmaz. Kurbana gönderilen gücün yerine, kötü niyetli bir komut dosyasının kurbanın gördüğü tarafsız bir siteye yerleştirilmesini kazanabilirsiniz.

Diğerleri görüyor (çeşitli kalıcı olmayan XSS tutarsızlıkları gibi, bu türün farklı bir kalıcı XSS ​​türü olabileceği görülüyor):

  • DOM modelleri

DOM'daki XSS tabanlarının özellikleri

Basitçe söylemek gerekirse, "muhteşem" beceriksiz XSS'nin kötü niyetli kodu, bir HTML kodu gibi ele alınabilir. Örneğin, posilannya böyle bir sırada oluşturulur:

http://example.com/search.php?q="/>

Ve çıktı HTML kodunu açtığınızda, şöyle bir şey görebilirsiniz: