You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AJAX/POST请求能否被攻击者伪造?后台PHP脚本存放位置是否安全?

嘿,别客气呀!作为Web开发新手能提前考虑到安全问题,已经比很多人强啦~咱们来逐个解决你的疑问:

你的两个管理员后台安全疑问解答

1. 把管理员级PHP脚本放在public_html/php目录是否不安全?

答案是肯定的,这确实存在不小的安全风险。因为public_html是Web服务器对外暴露的根目录,里面的所有文件都可以直接通过URL访问到。举个例子,如果攻击者猜到了delete_post.php的路径(比如yourdomain.com/php/delete_post.php),哪怕没有点击前端的按钮,也能直接构造请求访问这个脚本——如果你的脚本里没有做严格的权限校验,那攻击者就能随意删除帖子了。

正确的优化方向:

  • 移到非公开目录:把这类敏感脚本放在public_html之外的服务器目录里,比如/var/www/admin_scripts/,然后通过一个放在public_html里的入口文件(比如admin_handler.php)来转发请求。这样外部无法直接访问到敏感脚本,只能通过你指定的入口来交互。
  • 加严格的权限校验:如果暂时没法移动目录,那每个敏感脚本的第一行都要做校验——比如检查当前用户是否是已登录的管理员(通过Session验证),不能只依赖前端的按钮隐藏或者页面权限来限制。

2. 攻击者能否伪造AJAX/POST请求?

完全可以,而且难度极低。AJAX本质就是浏览器发送的HTTP请求,POST也只是HTTP请求的一种方法而已。攻击者可以用很多工具轻松构造出和你的AJAX请求一模一样的请求:比如用浏览器的开发者工具复制你的请求然后修改参数,或者用curl命令、Postman这类工具直接发送请求。

核心防范手段:

  • 验证用户身份:每个后端脚本都必须先验证当前请求来自已登录且拥有管理员权限的用户,不能跳过Session校验。
  • 添加CSRF令牌:在管理员页面生成一个随机的CSRF令牌,存在用户的Session里,同时把这个令牌嵌入到页面的表单或者AJAX请求的参数里。后端脚本收到请求时,要校验请求里的令牌和Session里的是否一致,这样就能防止攻击者跨站伪造请求。
  • 校验请求参数:比如删除帖子时,要校验传入的帖子ID是否是合法的数字,还要检查当前管理员是否有权限操作这个帖子(比如防止ID被篡改,或者限制操作范围)。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:24:12