gpt4 book ai didi

php - .htaccess 拒绝除 POST 之外的所有内容不适用于 Objective-C

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:50:34 25 4
gpt4 key购买 nike

我一直在寻找拒绝除 POST 之外的所有 HTTP 方法的方法。是的,我意识到这可能不会阻止太多,但我想让它发挥作用。我遇到了一种使用 .htaccess 文件拒绝所有帖子的方法:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^POST
RewriteRule ^.*$ /home/user/public_html/folder/bad_request.php

现在在我的 iPhone 应用程序中,我有以下代码将数据发布到网站:

NSString *post_length = [NSString stringWithFormat:@"%d",[post_data length]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://folder.domain.com/"]];
[request setHTTPMethod:@"POST"];
[request setValue:post_length forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:post_data];

当我使用当前的 .htaccess 运行此代码时,如上所示,我得到了 bad_request 页面,就好像我没有发布数据一样,但是如果我将 .htaccess 规则更改为 !^GET 我可以在浏览器中访问它并获得访问权限但是当我用 iPhone 代码发帖时,我被拒绝了……所以这是倒退的。有谁知道为什么它不起作用?

最佳答案

(评论-不是答案,但需要添加代码)

假设 POST 消息是从 iPhone 传来的(您可以验证是否删除了 .htaccess 中的过滤器),那么您可能需要找出您收到的请求类型

为此:

1) 使用以下代码创建一个 PHP 文件“t.php”:

<?php

echo 'htaccess sees: **' . htmlentities($_GET['m']) . '**<br>';
echo 'apache sees: **' . htmlentities($_SERVER['REQUEST_METHOD']) . '**';

?>

2) 使用以下内容创建 .htaccess:

# Enable rewrite engine and route requests to framework
# Add Options SymLinks if you need it
RewriteEngine On
RewriteRule ^(.*) t.php?m=%{REQUEST_METHOD} [L,QSA]

然后运行并记录结果。所有对服务器的请求都将转到 t.php,它会向您显示 .htaccess 正在处理的内容以及作为服务器方法传递给 PHP 的内容。星号是为了确保没有空格。仔细检查这些都是“POST”。您需要在您的 iPhone 调试器中捕获输出,或者让 PHP 将输出输出到日志文件。

关于php - .htaccess 拒绝除 POST 之外的所有内容不适用于 Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13522477/

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