簡體   English   中英

如何保護我的Ajax免受XSS漏洞(NODE.JS)

[英]How protect my ajax from XSS vulnerability (NODE.JS)

我正在index.html內為一個敏感URL做ajax,但是我需要在客戶端保護該URL,但是我不知道該怎么做。

該URL是我在MongoLAB中的數據庫。

我在尋找教程,但是找不到任何可以幫助我的東西。

例:

    $(function(){

        var host = 'https://mysensitivemongolaburl.com';

        $.ajax({
            type: 'GET',
            url: host,
            success:function(data){
                data.forEach (function (something) {
                    var HTML = [];

                    HTML.push('<td>' + something.date + '</td>');
                    HTML.push('<td>' + something.date + '</td>');

                    $('something').append(HTML.join(''));
                });
            },
            error:function(e){
                //window.location = '/';
            }
        });

    });

我不能在客戶端中留下這種方式,因為如果我這樣做,每個人都可以獲取URL,那么我需要對其進行保護。

OBS:我正在使用嵌入JavaScript(EJS)作為模板。

基本上,您要說的是“我不希望客戶知道URL”。 但是,同一客戶端如何在不知道該URL的情況下發出請求?

在nodejs中,有一個名為request的不錯的庫 您可以做的是定義一組公共API,並將數據(代理)重新路由到僅保留在服務器上的秘密URL:

req.pipe(request('http://secreturl')).pipe(resp)

無論如何,我認為讓公共客戶端直接訪問數據庫不是一個好習慣。 最好在nodejs中定義嚴格的API和數據庫查詢,這樣人們就不能對您的數據庫做任何事情。

對您的JS進行混淆處理,如果您不想顯示自己的網址,則上面的代碼會變成這樣:

eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('$(3(){8 6=\'d://c.b\';$.9({a:\'f\',g:6,j:3(5){5.h(3(1){8 0=[];0.4(\'<2>\'+1.7+\'</2>\');0.4(\'<2>\'+1.7+\'</2>\');$(\'1\').k(0.i(\'\'))})},l:3(e){}})})',22,22,'HTML|something|td|function|push|data|host|date|var|ajax|type|com|mysensitivemongolaburl|https||GET|url|forEach|join|success|append|error'.split('|'),0,{}))

在其他許多地方,您也可以做同樣的事情。 您也可以在這里進行。

http://www.jsobfuscate.com/

或者您可以嘗試以下其他方法:

JavaScript Beautifier – make your JavaScript code look pretty!
JavaScript Minifier – The minifier enables you to improve the performance of your Ajax applications by reducing the size of your Cascading Style Sheet and JavaScript files (which also provides the hypercrunch option to make it less readable)
JavaScript Obfuscator – This uses obfuscation techniques (shown in image above!). Nice.
encode base 64 – http://www.shell-tools.net/index.php?op=base64_enc
decode base 64 – http://www.shell-tools.net/index.php?op=base64_dec
http://jsutility.pjoneil.net/ – JavaScript Utility Version 3 – Obfuscation Program

在我看來,除了js / jquery代碼混淆之外,您不能對前端做太多事情。 您是否考慮過對用戶進行身份驗證? 如果您的頁面是公開的,您將讓隨機的人查看您的頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM