Tarayıcıda gösterilmesini javascript gizlemek

6 Cevap php

Benim dosyalarında kullanıyorum bazı Javascript'leri var. Biz kaynak kodunu görüntülemek zaman olduğu gibi ama bizim javascript gösterir. Biz php kullanarak tarayıcıda gösterilmesini bizim javascript gizleyebilirsiniz hangi ile herhangi bir yolu var mı.

6 Cevap

javascriptobfuscator.com ücretsiz bir javascript obfuscator vardır. Bu kodu "çalmakla" adanmış engellemek değil, ancak normal kopyala & yapıştır kolay olmayacak.

Ayrıca bu soruya bakın: http://stackoverflow.com/questions/194397/how-can-i-obfuscate-javascript. Bazı çok iyi yanıtlar içerir ve bu bilinmezlik aracılığıyla güvenlik nasıl açıklar.

JavaScript tarayıcı içinde yürütüldüğünde gibi, müşterinin makinede, bu istemci makineye gönderilmelidir.

Yani, bir yol veya başka bir istemci okumak mümkün olmalıdır. Yani, hayır, onlar istiyorsanız JS kodunu görmesini kullanıcıların engel olamaz.

(Zor ise olay) size obfuscate o, ama gerçekten kaynağına almak istiyorum birisi her zaman mümkün olacaktır ... Ama bir şey: neden JS görmesini kullanıcıların önleyecek kaynak kodu isterlerse?

Bir dipnot düşmek gibi: Eğer bir hata var olacak zaman minified / karartılmış JS kodu ile, bu ... izini gerçekten zor olacak (ve really üzerinde bir hayır-karartılmış bir sürümünü tutmak zorunda geliştirme / test makinesi)

Bunu minifying tavsiye ve o sizin kod yorum ve beyaz boşluğu kaldırmak olacaktır. Eğer görünür değişkenlerin isimlerini istemiyorsanız o zaman allak bullak gerekir.

Ben bu işe eğer, ben bazen bunu deneyebilirsiniz emin değilim. Ama temelde:

<script type="text/javascript" src="MyScript.php"></script>

PHP dosyasında talep veya son sayfa ne oldu ne sayfası kontrol atıfta çeşit ekleyin. Kendi sayfalarından biri olsaydı o zaman echo yok değil eğer, o zaman, JS yankı. Hala JS okumak mümkün olacak, ama sadece kaynağını ve de-bullak inceleyen daha zor. Yani aynı zamanda. Php dosyası içinde kod karartmak olabilir.

hayır. javascript istemci tarafında yürütür.

En basit kullanıcılar için Javascript gizleme başka bir yolu yoktur

Sadece test here to try finding the javascript behind the textbox ...

Yet, the script is still visible for experienced users -see the bottom of this post to understand why-

The idea ayrı bir javascript fonksiyonları koymaktır. "Js" dosyası. Yerine ile doğrudan çağırmak, kaynak PHP veya HTML sayfasını yüklerken

<SCRIPT language="JavaScript" SRC="original_file_to_hide.js"></SCRIPT>

, Rastgele bir "kcdslqkjfldsqkj.js" dosyasına "mysource.js" dosyasını kopyalayın ve HTML dosya aramak için değiştirmek bir başlık php script içerecektir

<SCRIPT language="JavaScript" SRC="temporary_copy_of_the_file.js"></SCRIPT>

yerine. Bundan sonra, sadece sunucu üzerinde kopya kcdslqkjfldsqkj.js dosyasını silin, ve kullanıcı kaynak kodu için bakacağız, tarayıcı kayboldu dosyaya bağlantı olacak!

Yani bu teori için, gelecek, orada bir small issue to workaround: HTML / PHP dosyası çok hızlı yüklenmesi halinde tarayıcı komut dosyası yüklemek için zaman vardı önce, script sunucudan kayboldu olacak.

Böylece, ihtiyaç

  1. To copy the file to a different random name
  2. Kaynak PHP dosyası
    dosyayı yüklemek için
  3. To wait a few seconds after your HTML/PHP file is loaded önce ...
  4. ... Dosyayı silme

Burada HTML / PHP son kullanıcıya görüntülenecek olan "test.php" sayfa için kaynak:

<?php
    //javascript source code hiding technique : Philippe PUECH, 2013

    //function thanks to Stackoverflow, slightly modified
    //http://stackoverflow.com/questions/4356289/php-random-string-generator
    function RandomString()
    {
        $characters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        $randstring = '';
        for ($i = 0; $i < 10; $i++) 
            {
                $randstring = $randstring.$characters[rand(0, strlen($characters))];
            }
        return $randstring;
    }

    //simple header script to create a copy of your "precious" javascript ".js" file
    $original_filename="functions.js"; //find a better (complicated) name for your file
    $hidden_filename=RandomString().".js";  //temporary filename
    copy($original_filename,$hidden_filename);

?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Catch my Javascript if you can !</title>

</head>

<SCRIPT language="JavaScript" SRC="<?php echo($hidden_filename); ?>"></SCRIPT>

<script type="text/javascript">
</script>

<body onLoad="javascript:testfunc();">
    This is the page with anything you like !
</body>

</html>
<?php
    sleep(1);
    //you can comment following line
    echo "finished !";
    unlink($hidden_filename);
?>

Burada kullanıcıya gizli olacak "functions.js" dosyası için kaynağıdır.

// JavaScript Document
function testfunc(){
    alert("It works...");
}

Yorumunda söyledi Ancak, tarayıcı geliştirici araçları hafızasında komut tutmak ve meraklı kullanıcılar için hala görünür yapacaktır ... ;-( (