0

次のコードがあります。

<?php

$secret_data = "data noone can know";

?>

bla bla bla alot of html

<script type="text/javascript">
function("bla bla", {
data: '<?=$secret_data?>'
}
);
</script>

Web ブラウザでソースを表示すると、データがわかります。JavaScript で使用しながら安全に保つにはどうすればよいですか?

何らかの方法で JavaScript を PHP 内に配置できますか?

4

3 に答える 3

1

Javascriptなどのクライアントテクノロジーを使用する場合、ソースコードを隠して秘密にしておくことは不可能です。その基本原則の1つ。クライアント側で実行されます。

このサイトから取得:

JavaScriptは、いわゆるクライアントサイドスクリプト言語です。これは、インターネットブラウザ内で実行されるコンピュータプログラミング言語であることを意味します(ブラウザは、Webサーバーに接続してページをダウンロードするため、Webクライアントとも呼ばれます)。

したがって、残念ながら、あなたの発言は意味がありません。

エンドユーザーにそれが何であるかを見せずに、秘密のデータを使用するためにjavascriptが必要です

コード/情報を秘密に保つには、サーバーに実装/保存する必要があります。

Javascriptが実際にどのように機能するかをさらに詳しく調べることをお勧めします。これが典型的なアーキテクチャを描いた画像です:

サーバー側とクライアント側のテクノロジー

于 2013-02-02T21:13:00.023 に答える
1

現在行っていることは機能しますが、エンドユーザーは「秘密のデータ」を見ることができます。クライアント側はすべてユーザーに表示されます。ユーザーに見せたくないデータをスクリプトに渡す必要がある場合は、セッションに保存できます。

<?php
    session_start();
    $_SESSION['secret_data'] = 'data noone can know';
?>
于 2013-02-02T21:01:09.790 に答える
1

別のユーザーがユーザーのコンテンツを表示する必要がある場合、それは javascipt で使用されます。ただし、別の人がこの ID を知っている場合は、そのユーザーが編集できます。したがって、非表示にする必要があります

あなたの問題は次のとおりです。

  • ユーザーが ID を知っていれば、コンテンツを表示できます
  • ユーザーが ID を知っていれば、コンテンツを編集できます

コンテンツを作成したユーザーのみがコンテンツを編集できるようにしたいが、ID を知っている人は誰でも閲覧できるようにしたい。

現在のシステムでは、コンテンツを閲覧または編集できないようにせずに id を秘密にすることはできません。

したがって、ID を秘密にしようとすることは、ここでは解決策ではありません。

システムにチェックのレイヤーを追加する必要があります。idを知っている人なら誰でもコンテンツを閲覧できるので、閲覧部分はそのままで構いません。

コンテンツを作成したユーザーのみが編集できるため、追加の保護が必要です。コンテンツを編集するためのリクエストが届いた場合、そのリクエストが既知のユーザーからのものであることを認証する必要があり(つまり、ユーザーがログインしていること) 、コンテンツを編集する権限があることを確認する必要があります (つまり、そのユーザー名がログインしているユーザーが、コンテンツを作成したユーザーのユーザー名と同じであるか、管理者であるか、他の適切な権限を持っていること)。

auth/authz のそのレイヤーは、サーバー上で実行できます。

于 2013-02-02T21:15:26.240 に答える