-4

出于安全原因,我想将我的 Jquery/javascript 包装在 PHP 中,我认为 PHP 比客户端脚本更难访问。我用谷歌搜索了这个主题,但信息真的不多,一些例子并没有具体说明,仅此而已。为了处理我的实际脚本,我真的只需要一个开始的想法。例如,假设我有这个:

<script>
    $("p").click(function () {
      $(this).slideUp();
    });
</script> 

像这样就够了吗:

<?php

<script>
    function click{
            $("p").click(function () {
              $(this).slideUp();
            }); 
    }
        </script> 
?>

    echo click()

我要求对此有一个基本的了解,因为我从谷歌中一无所获。关于我的代码的 anwser 将不胜感激。

4

7 回答 7

7

您不能对用户隐藏 jQuery 代码。它始终是发送到用户浏览器的 HTML 页面的一部分,用户可以随时打开源代码视图并查看它。必须这样,因为 jQuery 是 JavaScript,它是由浏览器执行的,而不是服务器。如果你不告诉浏览器该做什么,它就做不到。就那么简单。

显然你可以使用 PHP 生成 jQuery 代码,但最终它还是会传输到用户的浏览器。

于 2013-01-30T10:03:30.130 回答
3

你试图做的事情是没有意义的。最终,您的 jquery 代码将位于客户端。你不能隐藏它。PHP 无法为 JS 添加安全性,因为 JS 在客户端运行,而 PHP 在服务器端运行。

客户端编程包括任何编码或计算或效果或动画或您的网站通过浏览器与用户执行的任何类型的交互。但是服务器端编程仅在服务器中执行所有任务。所以用户没有意识到这一点。

例如,PHP 用于服务器端编程。您使用 HTML 设计一个网站并在其中使用 JavaScript 从用户那里获取一些输入并以任何方式对其进行修改。更具体地说,如果您创建了一个博客网站,并且希望指定用户最多可以发布 5000 个字符。然后你用 JavaScript 做一些客户端编程来计算字符数和任何过滤或任何东西。但是您需要将这些帖子发送到服务器。然后服务器执行一些服务器端任务,可能使用 PHP,以清理 SQL 注入的输入并将其保存到数据库中。

用户只会知道在浏览器中发生了什么,而不是在服务器中发生了什么。这些是后台任务。

阅读更多

于 2013-01-30T10:04:01.330 回答
1

PHP 对增加 javascript 的安全性没有任何帮助。javascript在客户端运行。你不能做任何事情让它在服务器端运行。

于 2013-01-30T10:03:23.633 回答
1

无论如何,您的 JS 必须到达浏览器才能执行。没有办法解决这个问题。

您拥有的最佳选择可能是混淆它。JS 没有漏洞是无法保护的。

于 2013-01-30T10:04:21.027 回答
1

不,脚本仍会显示。如果您想在 PHP 文件中编写 Javascript,则需要回显脚本的每一行:

<?php
    echo '<script>';
    echo 'function click({';

等等。

但是,这仍然会在页面上显示 Javascript 而不会隐藏任何内容 - 您无法在您的网站上隐藏 Javascript,因为它需要下载到客户端的浏览器才能运行(出于同样的原因,您无法隐藏任何页面上的 HTML)。

如果你真的想让人们难以理解你的 Javascript 代码,你可以尝试缩小或混淆它,但这仍然不会停止复制和粘贴。

于 2013-01-30T10:06:09.343 回答
1

你可以:

这个编译器允许你模糊和缩小你的代码,让你很难阅读你在做什么。Base64 编码使它更难一些。

虽然,它使您的代码难以阅读,但您无法完全隐藏 javascript

于 2013-01-30T10:09:50.180 回答
0

这就是你要找的:

<?php
echo "<script>";
echo "$(\"p\").click(function () {";
echo "$(this).slideUp();";
echo "});";
echo "</script>";
?>

您想使用 PHP “echo” 语句来传递您的 JavaScript。确保在 JavaScript 中使用斜杠“转义”任何引号,否则 PHP 处理器会将引号解释为 PHP“echo”语句的一部分。

您可能希望使用 PHP 来交付 JavaScript 的原因是您可以在 PHP 中处理安全性。这样,如果用户没有得到正确的身份验证,PHP 脚本将根本不提供任何内容。这是一个例子:

<?php
if ( $_COOKIE['password'] > '') {
    echo "<script>";
    echo "$(\"p\").click(function () {";
    echo "$(this).slideUp();";
    echo "});";
    echo "</script>";
}
else {
    echo "Password not set";
}
?>
于 2014-02-11T16:42:25.247 回答