SORU
6 Mayıs 2011, Cuma


Şifreli "Komut dosyası Hatası." bildirdi Chrome ve Firefox Javascript

Web sitemde Javascript hataları algılayan bir komut dosyası var ve raporlama için benim arka uç gönderir. İlk hata, sözde satır numarası ve zaman karşılaşılan bildirir.

EDİT doctype eklemek için:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">

...

<script type="text/javascript">
//<![CDATA[
// for debugging javascript!
(function(window){
    window.onerror = function(msg, url, ln) {
        //transform errors
        if (typeof(msg) === 'object' && msg.srcElement && msg.target) {
            if(msg.srcElement == '[object HTMLScriptElement]' && msg.target == '[object HTMLScriptElement]'){
                msg = 'Error loading script';
            }else{
                msg = 'Event Error - target:'   msg.target   ' srcElement:'   msg.srcElement;
            }
        }

        msg = msg.toString();

        //ignore errors
        if(msg.indexOf("Location.toString") > -1){
            return;
        }
        if(msg.indexOf("Error loading script") > -1){
            return;
        }

        //report errors
        window.onerror = function(){};
        (new Image()).src = "/jserror.php?msg="   encodeURIComponent(msg)   "&url="   encodeURIComponent(url || document.location.toString().replace(/#.*$/, ""))   "&ln="   parseInt(ln || 0)   "&r="   ( new Date());
    };
})(window);
//]]>
</script>

Bu senaryo nedeniyle, akut sitemde oluyor herhangi bir javascript hataları farkındayım.En büyük suçluların biri "Hata." on line 0. ScriptChrome 10 ve Firefox 3 . Bu hata (ya da başka bir şey denebilir mi?) yok Internet Explorer.

Düzeltme (5/23/2013):Bu "Script Hata, 0" hata şimdi IE 7 ve IE. diğer sürümleri muhtemelen gösterilmesini Hattı Muhtemelen bu davranış olarak son IE güvenlik yaması sonucu önceden yoktu.

Herkes bu hata ne anlama geldiğini ya da neden bir fikriniz var mı? Benim genel pageloads 0.25% hakkında oluyor, ve yarım bildirilen hataları temsil eder.

CEVAP
15 EKİM 2011, CUMARTESİ


"Komut dosyası hatası." ne olur ne olmaz Firefox, Safari ve Chrome bir istisna ihlal tarayıcı same-origin policy - yani ne zaman hata oluşuyor senaryo bu barındırılan bir etki alanı dışındaki bir etki alanı geçerli sayfa.

Bu davranış, kasıtlı, dış etki alanlarına bilgi sızmasını önlemek için komut. Bunun neden gerekli olduğunu, örneğin, yanlışlıkla <script src="yourbank.com/index.html"> ile ilgili bir sayfa kadar hizmet evilsite.com, ziyaret düşünün. (Evet, html bu komut dosyası etiketi, JS) işaret ediyoruz. Bu komut, bir hata neden olur, ancak hata olmadığını giriş yapmış veya yapmamış olduğunu bize söyleyebilir, çünkü ilginç. Eğer oturum açtığınızda, bu hata eğer öyle olmazsa 'Please Login ...' is undefined olabilir ise 6 ** olabilir. Bu doğrultuda bir şey.

Eğer evilsite.com ya da en iyi 20 banka kurumları için bu, bankacılık sitelerini ziyaret etmek iyi bir fikir olurdu, ve çok daha hedefe yönelik Kimlik Avı sayfası sağlayabilir. (Bu sadece bir örnek tabii. Ama tarayıcılar izin olmaması için bir sebep gösterirherhangi biretki alanı sınırları aşmayı veri.)

Safari, Chrome ve Firefox'un son sürümlerinde bu test ettik hepsi bu. 9 değil - x-kökeni istisnaları aynı kaynak aynı olanlar davranır. (Opera onerror desteklemiyor.)

Atların ağzından: istisnalar onerror için geçen zaman WebKit source that checks origin (). Ve Firefox source that checks.

GÜNCELLEME (10/21/11): Firefox bug that tracks this issue Bu davranış, ilham veren blog yazısı için bir bağlantı içerir.

GÜNCELLEME (12/2/14)Şimdi çapraz etki alanı hata tam komut dosyası etiketleri üzerinde crossorigin attribute bir belirtme ve sunucu CORS uygun yanıt HTTP başlıklarını göndermek suretiyle bazı tarayıcılarda etkinleştirebilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • disneychannel

    disneychanne

    19 ŞUBAT 2006
  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • ShoSho

    ShoSho

    20 Ocak 2010