for JavaScript

PreEmptive Solutions


PreEmptive Protection for JavaScript


@IT Special コンテンツのページへ
新規導入相談 参考情報
      【動画公開中】

※ アプリケーション開発に伴う、リスクと難読化について解説しています。(英語) 全画面表示でご覧ください。

サポート 関連プロダクト

AG-TECH製品ライン


ご利用いただくお客様層に合わせた AG-TECH サポートサービスをご用意しております。



製品別FAQ参考資料
サポートサービスサポートフォーム

お問い合わせはこちら



*記載されている会社名、アプリケーション名、システム名などは一般に各メーカの登録商標または商標です。
*Android のロボットは Google が作成、提供しているコンテンツをベースに複製したもので Creative Commons の表示 3.0 ライセンスに記載の条件に従って使用しています。
PreEmptive Protection for JavaScript  

アプリケーション保護と難読化 ~ JavaScript への適用

中間言語のバイナリ形式で配布される .NET や Java などの言語とは異なり、JavaScript アプリは通常ソース形式で配布されます。これは、実行環境にアクセスできるユーザー(ブラウザなど)にコードが直接見えることを意味します。そのため、攻撃者はブラウザーに組み込まれたデバッガーを使用して簡単にコードのステップ実行をしたり、他のツールを使用し、コードの脆弱性を静的解析することが可能になります。

JavaScript のリスク

JavaScript アプリを難読化して保護する必要

保護および難読化された JavaScript 実際

<難読化-実行前

BankABC.fundingSources.create('1xM821zkPUob1dmeNfhJedI1h5JkFRoC3Ja9Y8SLXp0EStArMT', {
  routingNumber: getVal('routingNumber'), accountNumber: getVal('accountNumber'), type: 
getVal('type'), name: getVal('name')
}, function(err, res) {
  console.log('Error: ' + JSON.stringify(err) + ' -- Response: ' + JSON.stringify(res));
});
customer_url = 'https://api-sandbox. BankABC.com/customers/AB993D36-3757-69C1-C3B4-
29727FB3111C'
customer = app_token.post("#{customer_url}/funding-sources-token")
$('form').on('submit', function() {
  BankABC.configure('sandbox');
  var token = ’X9Bv3NuSrML7Ke1mcGmCT0EpwW34GSmDaYP09UfCpeWde46Jug’;
  var bankInfo = { routingNumber: $('routingNumber').val(), accountNumber: $('accountNumber').
val(), type: $('type').val(), name: $('name').val()  }
  BankABC.fundingSources.create(token, bankInfo, callback);
  return false;
});
function callback(err, res) {
  var $div = $('
');
  var logValue = { error: err, response: res };
  $div.text(JSON.stringify(logValue));
  console.log(logValue);
  $('#logs').append($div);
}

<難読化-実行後

var Acjgb$1=Ezchb("uf}wz}t@|fapv");var cemgb$1=Ezchb("pavrgv");var wZcgb$1=Ezchb('\x22k^+!\
x22ixCF|q\x22w~v]u{YvwZ\x22{&YxUA|P Yr*J+@_Kc#V@gRa^G');var Yaggb$1=Ezchb('a|fgz}t]f~qva');
var sWWfb=Ezchb('rpp|f}g]f~qva');var UXZfb=Ezchb('gjcv');var oTQfb=Ezchb('}r~v');var QUTfb=
Ezchb("\x7F|t");var QoHgb=Ezchb('Vaa|a)3');var sqKgb=Ezchb("`gaz}tzuj");var MlBgb=Ezchb('3>>
3Av`c|}`v)3');var onEgb=Ezchb("`gaz}tzuj");var Iivgb=Ezchb('{ggc`)<`r}wq|k=3Qr}xRQP=p|~ $&$>
%*P\x22>P Q\x27>!*$!$UQ \x22\x22\x22P');var kkygb=Ezchb("c|`g");var Efpgb=Ezchb("0hpf`g|
~vaLfa\x7Fn`|fapv`>g|xv}");var ghsgb=Ezchb('u|a~');var gBfhb=Ezchb("|}");var ICihb=Ezchb
('fq~zg');var cyZgb=Ezchb("p|}uztfav");function Ezchb(cWXdb){var EXaeb="";for(var ErOeb=0;
ErOebcWXdb.length;ErOeb++){EXaeb+=String.fromCharCode(cWXdb.charCodeAt(ErOeb)^0x13);}return 
EXaeb;}var YuTgb=Ezchb('`r}wq|k');var AwWgb=Ezchb('a|fgz}t]f~qva');var UrNgb=Ezchb("er\x7F");
var wtQgb=Ezchb('rpp|f}g]f~qva');var wNDhb=Ezchb("er\x7F");var YOGhb=Ezchb('gjcv');var sKxhb=
Ezchb("er\x7F");var ULAhb=Ezchb('}r~v');var oHrhb=Ezchb("er\x7F");var QIuhb=Ezchb("uf}wz}t@|
fapv`");var kElhb=Ezchb("pavrgv");var MFohb=Ezchb('wze3<-');var ofqeb=Ezchb("gvkg");var Qgteb
=Ezchb("`gaz}tzuj");var kckeb=Ezchb("\x7F|t");var Mdneb=Ezchb('0\x7F|t`');var gZdeb=Ezchb
("rccv}w");BankABC[Acjgb$1][cemgb$1](wZcgb$1,{routingNumber:getVal(Yaggb$1),accountNumber:
getVal(sWWfb),type:getVal(UXZfb),name:getVal(oTQfb)},function(gtReb,AoIeb){console[QUTfb]
(QoHgb+JSON[sqKgb](gtReb)+MlBgb+JSON[onEgb](AoIeb));});customer_url=Iivgb;customer=app_token
[kkygb](Efpgb);$(ghsgb)[gBfhb](ICihb,function(){BankABC[cyZgb](YuTgb);var cqLeb=X9Bv3NuSrML
7Ke1mcGmCT0EpwW34GSmDaYP09UfCpeWde46Jug;var wlCeb={routingNumber:$(AwWgb)[UrNgb](),account
Number:$(wtQgb)[wNDhb](),type:$(YOGhb)[sKxhb](),name:$(ULAhb)[oHrhb]()};BankABC[QIuhb][kElhb]
(cqLeb,wlCeb,Iaheb);return (NaN===NaN);});function Iaheb(YmFeb,siweb){var Ujzeb=$(MFohb);var 
UDmfb={error:YmFeb,response:siweb};Ujzeb[ofqeb](JSON[Qgteb](UDmfb));console[kckeb](UDmfb);
$(Mdneb)[gZdeb](Ujzeb);}

PreEmptive Protection for JavaScript は、高度な難読化と保護技術を使用して、アプリの改ざん、悪用、データの盗難から保護します。

主な機能

他のソリューションと比較した優位点

リリース情報

近日、リリース予定。
評価版(プレリリース版)をぜひお試しください。
本製品について、質問等ありましたら製品担当までお気軽にお問合せください。