如何防止PHP页面被直接访问?

2024-01-06

下面是我用作 AJAX 脚本一部分的 JavaScript 片段。如何防止 user_back_end_friends.php 被直接访问?我不希望人们能够访问domain.com/user_back_end_friends.php 并查看朋友列表。

JavaScript 代码:

<script type="text/javascript">
    $(document).ready(function() {
        $("#user_friends").tokenInput("/user_back_end_friends.php", {
            theme: "sometheme", userid: "<?php echo $id; ?>"
        });
    });
</script>

这是我发现的,但不知道如何用上面的 javascript 代码实现它:

我在需要调用它的页面中使用它:

$included=1;include("user_back_end_friends.php");

当我必须阻止直接访问时,我使用:

if(!$included){ die("Error"); }

但是如何将脚本的 $included 部分添加到我的 javascript 代码中呢?


保护 javascript 代码是没有意义的,您只需要保护服务器端代码。

无论如何,我认为你的做法不正确;如果您已经有登录用户/用户 ID,我将只使用会话中的用户 ID,而不是 javascript 提供的用户 ID。这样任何人都无法篡改它。

所以你可以这样开始你的页面:

session_start();
if (isset($_SESSION['user_id'))
{
  // do stuff with the user ID
}
else
{
  // display error message?
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止PHP页面被直接访问? 的相关文章

随机推荐

  • 返回 f 字符串的 For 循环函数

    我是 python 新手 尝试编写一个函数 该函数接受字典列表并返回一个新的字符串列表 其中每个字典中的名字和姓氏键连接在一起 names first John last Smith first Jessie last Snow def n
  • 无法在react.js中使用本地图像

    基本上我无法使用本地图像 我真的不确定为什么 我已经安装了 url loader 和 file loader 并尝试请求该文件 HeaderNavigation js 我尝试使用的图像位于同一目录中 并被引用为品牌图像 Created by
  • 通过 Visual Studio 代码 launch.json 运行 foreman start

    目前 我正在通过输入运行我的解决方案foreman start进入命令行 工作正常 我正在尝试使用 Visual Studio 代码调试我的代码 为此 我创建了一个 launch json 文件 version 0 2 0 configur
  • 在Python中以特定模式打印字母

    我有以下字符串并将其拆分 gt gt gt st 2g k 3p gt gt gt l filter None st split gt gt gt print l 2g k 3p 现在我想打印 g 字母两次 k 字母一次 p 字母三次 gg
  • 双面文件问题

    我正在程序中读取 system32 文件夹中的一些文件 其中一个文件 C Windows System32 gdi32 dll 表现出一种非常奇怪的行为 当我从程序中读取它时 它显示大小为 310 784 字节 当我从资源管理器查看它的大小
  • 如何从控制器调用 EditorFor

    我有地点列表 public class Location public string LocationName get set public string Address get set 我为此类创建了编辑器模板 div span Html
  • 从视频文件创建缩略图返回空位图

    我发送启动摄像机的意图 PackageManager pm getPackageManager if pm hasSystemFeature PackageManager FEATURE CAMERA Intent video new In
  • 在三层控制台应用程序中使用常量或全局变量

    我有一个像这样的 3 层应用程序设置 带有控制台表示层 在我的业务逻辑中 我有一个类 我在其中声明了许多固定的不同变量 即值不会改变 这些变量的值取自应用程序设置 现在我发现的问题是我的类调用不同的方法 其中这些变量通过方法签名传递 这是好
  • 如何合并单个提交?

    有时我同时与多个分支机构合作 假设我有名为 master release 1 1 和 Experimental 的分支 我创建一个新文件或在实验中进行更改 并且我希望将一项更改应用于其他分支 我可以在 git 中执行此操作吗 如果我只是将提
  • “已连接”UDP 套接字收到 ICMP 端口不可达

    基于 UDP 是无连接协议的前提 我假设主机是否启动或关闭都无关紧要 然而 现在我正在进行测试 我发现当我 连接 我的 UDP 客户端套接字时 write到该套接字会返回错误 因为服务器已发回 ICMP 端口不可达错误 连接 UDP端口的目
  • 如何测量 Android 上的 VRAM 消耗?

    我想获取Android设备VRAM大小 有没有从程序中获取的方法 让我们使用 Nexus One 进行一些计算 屏幕分辨率为 480x800 因此所需的最小视频内存大小为 400 800 4 bytes 1536000 bytes 假设驱动
  • 用于获取 HDR(高动态范围)是否处于活动状态的 Windows API

    我的环境是Windows 10 20H2 64位 和Visual Studio 2019 我正在开发一个应用程序作为 C WPF NET 5 项目 我想编写一个代码 表明 HDR 高动态范围 当前在系统上处于活动状态 在本文档中 https
  • 如何在 Objective C 中将一个块作为参数传递给另一个块

    我正在尝试定义一个以块作为参数的块 下面这行代码有什么问题 id cacheResult NSString id void NSString name id void block NSObject item nil block return
  • nvm:无法卸载当前活动的节点版本

    我正在 OSX 上执行此操作 我需要删除节点 但是当我输入 cmd 后 nvm uninstall v4 4 7它提示我nvm 无法卸载当前活动的节点版本 v4 4 7如何彻底卸载node 只需输入以下命令 nvm deactivate 然
  • AWS Kinesis 中的分区键是什么?

    我正在读关于AWS Kinesis 在下面的程序中 我将数据写入名为的流中TestStream 我运行这段代码 10 次 将 10 条记录插入到流中 var params Data More Sample data into the tes
  • Javascript函数变量突然变得未定义?

    这是最奇怪的事情 我的代码如下 function menuSwipe init dojo query div fill div container div menu div group ul forEach function item do
  • 配置 jsor 库以使 symfony 2/doctrine 2 与 postgis 扩展一起使用

    使用 Symfony 2 8 24 和 PostGIS 我需要THE TITLE 我发现this https github com jsor doctrine postgis在 github 中 但问题是那里的配置步骤对我没有多大帮助 我不
  • CSS 变换不影响子元素?

    我试图让卡片元素在悬停时向上移动 然后在不再悬停时向下移动 我目前正在通过使用来实现这一点transform and translate在CSS中 但是 我注意到这可能会影响子元素以及我希望此动画受影响的元素 这是我目前拥有的卡片的 HTM
  • 如何将md5字​​符串转换为普通文本? [复制]

    这个问题在这里已经有答案了 我已将用户密码以 MD5 形式保存在数据库中 现在我想以明文形式向用户发送密码 有什么方法可以将 MD5 字符串转换为明文吗 MD5 是一个hashing http en wikipedia org wiki C
  • 如何防止PHP页面被直接访问?

    下面是我用作 AJAX 脚本一部分的 JavaScript 片段 如何防止 user back end friends php 被直接访问 我不希望人们能够访问domain com user back end friends php 并查看