gpt4 book ai didi

php - 隐藏 url 和重定向对 AJAX POST 的影响?

转载 作者:搜寻专家 更新时间:2023-10-31 21:14:08 26 4
gpt4 key购买 nike

我正在创建一个带有 php 后端的网站。我有一个名为 /inc/ 的目录,其中包含生成 html 网页时包含的 php 包含文件。

如果用户试图请求 /inc/ 目录中的任何文件(例如,通过浏览器中的 url),我已经做到了,所以他们会被重定向到主页。我这样做是为了确保这些文件都不会被外部调用。

我需要通过 jQuery POST 请求调用其中一个文件。

这是我的问题:

1) 我能以某种方式隐藏 POST 中请求的文件的 url 吗?

2) 通过 jQuery 对 /inc/ 文件夹中文件的 POST 是否会失败,因为对/inc/文件夹中文件的外部请求被重定向到主页?或者服务器是否区分 POST 请求和其他类型的请求?

3)(可选)我如何确保 POST 请求“合法”完成,而不是机器人试图通过同时发出数千个 post 请求来破坏我的服务器?

最佳答案

  1. 不是没有在某处以某种方式使用链接。提醒自己 jQuery/Ajax/XHTTPRquests/Xm...任何指向外部的东西都必须指向外部。总会有一个url,而且永远是可追溯的。

确保您的网址不易被追踪的选项

  1. 为您的 javascript 调用创建一个页面(隐藏起来,但实际上什么都不做)
  2. 编辑 .htaccess 选项并使用它来处理 javascript 请求
  3. 编辑 .htaccess 选项和用于服务器端处理 javascript 的 php 页面

我将讨论选项 3

示例(包括 2.!)

#Checks if the request is made within the domain
#Edit these to your domain
RewriteCond %{HTTP_REFERER} !^.*domain\.com [NC]
RewriteCond %{HTTP_REFERER} !^.*domain\.com.*$ [NC]

#Pretends the requested page isn't there
RewriteRule \.(html|php|api.key)$ /error/404 [L]

#Set a key to your 'hidden' url
#Since this is server-based, the client won't be able to get it
#This will set the environment variable when a request is made to
#www.yourwebsite.com/the folder this .htaccess is in/request_php_script
SetEnvIf Request_URI "request_php_script" SOMEKINDOFenvironmentNAME=http://yourlink.com

#Alternatively set Env in case your apache doesn't support it
#I use both
SetEnv SOMEKINDOFNAME request_php_script

#This will send the requester to the script you want when they call
#www.yourwebsite.com/the folder this .htaccess is in/request_php_script
RewriteCond %{REQUEST_URI} request_php_script$ [NC]
#if you don' want a php script to handle javascript and benefit the full url obfuscation, write the following instead
#RewriteRule ^.*$ /adirectscript.php [L]
RewriteRule ^.*$ /aredirectscript.php [L]

#and yes this can be made shorter, but this works best if folders and keys in your ENV are similar in some extend

在这种情况下,可以调用将您重定向到正确页面的 php 脚本,但如果所有内容都是内部的,那么我不明白您为什么要隐藏脚本的 url。如果您已如图所示设置 .htaccess,则只有您的页面可以访问它。用户和外部来源无法访问它,因为他们将被重定向。

但是,如果您的脚本引用外部 API key ,那么这可能会有用,您可以调用重定向脚本

<?php
echo file_get_contents(getEnv("SOMEKINDOFNAME"));
?>

现在调用此脚本时,它会返回您的内容。如果你想在页面中加载,你可以调用这里描述的东西来代替

getting a webpage content using Php

要充分利用它,您必须将 jQuery POST 方法设置为 POST at www.yourwebsite.com /这个 .htaccess 所在的文件夹/request_php_script.php

  1. 如果 1 和 2 正确完成,就像上面那样,您就不必担心来自外部的机器人试图访问您的 .php 脚本

旁注:您可以跳过额外的 php 脚本,但您可以在 .har 文件中进行追踪。这意味着最后,您的网址仍然可以在某处访问。使用额外的 php 脚本(为方便起见给它查询参数)将混淆 url 足以使其难以找到。我用这种方式隐藏了对外部 API key 的请求

TLDR:

  • 为页面设置 .htaccess 服务器环境变量
  • 将 .htaccess 重写条件设置为要重定向到页面的页面,如果
    • 最初来 self 的页面
    • 通过脚本调用
  • 设置javascript调用指定页面

Medium 'secure'

cannot be found in script

cannot be traced back without saving har files

  • 创建 php 文件以返回页面内容
  • 将 .htaccess 设置为指向 php 而不是页面

Highly 'secure'

cannot be found in script

cannot be traced back, even when saving har files

关于php - 隐藏 url 和重定向对 AJAX POST 的影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12851981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com