0

SSJSについて質問があります。

SSJSを使用して、ユーザーからコードを隠すことは可能ですか?

PHPなどの他のServerSide言語は、クライアント側であるブラウザーの前に処理されるため、ソースで表示できません。

私が欲しいものの小さな例:

<html>
<head>
  <script runat="server">
    function getPassword(){
       var password = "myPass";
       return password;
    }
  </script>
</head>
<body>
  <script>
    alert(getPassword());
  </script>
</body>
</html>

これをテストしましたが、パスワードは引き続き表示できます

私の例が単純なCSJSになるように何か間違ったことをしているのですか、それともSSJSコードを隠すことが不可能ですか?

4

3 に答える 3

0

はい。他のサーバー側言語とまったく同じように、サーバー側のコードをユーザーから隠すことができます。サーバー側のJavaScriptを理解するサーバーを介して関連するHTMLファイルを提供する必要があり、そのサーバーを正しく構成する必要があります(デフォルトでは、.htmlファイルはおそらく前処理されません。通常、サーバー側のコードを含むHTMLファイルです。それらを実行しているプラ​​ットフォームに応じて、、、など.shtmlの異なる拡張子があります。もちろん、適切な構成を使用すると、何でも正しく処理できます)。上記のコードをWebブラウザーで表示できた場合は、これらの手順の1つを見逃しています。.asp.aspx

サーバーサイドJavaScriptには、他のサーバーサイド言語の長所と短所があることに注意してください。たとえば、サーバー側の言語を使用してクライアントのブラウザのスクリプトを作成することはできません。そのため、クライアント側のコードが非常に多く見られます。(おそらくそれは明白でした。:-))

于 2010-11-28T12:49:48.423 に答える
0

サーバー側のJavaScriptはすべてサーバーでのみ使用できますが、クライアントに送信する前にPHPエンジンを介してPHPを実行する必要があるのと同様に、送信する前にJSエンジンを介してSSJSを実行する必要があります。

そのようなエンジンのリストはウィキペディアで見つけることができますが、 node.jsはおそらく現在最も人気があります。

runat="server"は、IIRC、ASP.NET構造です。そのルートをたどりたい場合は、最初にASP.NETを使用する必要があります。あなたが持っている構文が正しいかどうかはわかりませんが。

于 2010-11-28T12:51:46.100 に答える
0

TJ Crowderの賢明な言葉に従えば、ファイルはWindowsベースのホスト上の従来の.aspファイル(つまり、拡張子が.aspのファイル)である可能性があり、次のようになります。

<% @language=ecmascript %>
<% 
    function getPassword(){
       var password = "myPass";
       return password;
    }
%>
<html>
<head>
</head>
<body>
  <script>
    alert('<%=getPassword()%>');
  </script>
</body>
</html>

または、あなたのスタイルに合わせて、次のようになります。

<script language="jscript" runat="server">
// mind the 'language' property, it is required. 
// The script tag doesn't have to be
// in the header of the html-document.
  function getPassword(){
     var password = "myPass";
     return password;
  }
</script>
<html>
<head>
</head>
<body>
  <script>
    alert('<%=getPassword()%>');
  </script>
</body>
</html>

どちらの方法でも、サーバー側のスクリプトはページソースに表示されません。余談ですが:<%=...%>の省略形と見なすことができますResponse.Write(...)

他のホストについては、プロバイダーまたはDavidDorwardsの回答に記載されているウィキペディアのリストを確認してください

于 2010-11-28T13:15:54.853 に答える