几天前,随着新的Opera 65推出address bar redesign,我注意到了我的网页上的一个问题。 在酒吧里输入或复制地址时,Opera将请求发送到服务器,但是,我似乎无法在PHP中捕获请求,因为Fetch API似乎在后台使用。
在PHP 7或Apache 2.4中是否可以拒绝或阻止Fetch API请求?换句话说,是在输入/复制时阻止Opera在服务器端产生的请求(首选PHP)?
特别是,我需要排除在查询中提供带有哈希键的操作的GET请求(在下面的示例中为 test )。 当地址被复制(例如从邮件中复制到地址栏)时,Opera“在后台”发送请求,该请求被执行,但是通过Enter提交地址后,由于禁止操作(哈希键不再有效。
从Apache日志:
127.0.0.1 - - [29/Nov/2019:01:56:08 +0100] "GET /? HTTP/1.1" 200 179736
127.0.0.1 - - [29/Nov/2019:01:56:08 +0100] "GET /?t HTTP/1.1" 200 179813
127.0.0.1 - - [29/Nov/2019:01:56:08 +0100] "GET /?te HTTP/1.1" 200 179808
127.0.0.1 - - [29/Nov/2019:01:56:08 +0100] "GET /?tes HTTP/1.1" 200 179819
127.0.0.1 - - [29/Nov/2019:01:56:08 +0100] "GET /?test HTTP/1.1" 200 179823
来自Wireshark(请求之一):
/?test HTTP/1.1
Host: sk.localhost
Connection: keep-alive
Sec-Fetch-Site: none
Sec-Fetch-Mode: no-cors
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/78.0.3904.97 Safari/537.36 OPR/65.0.3467.48
accept-Encoding: gzip,deflate,br
accept-Language: en-US,en;q=0.9
使用的技术: PHP 7.3.7,Apache / 2.4.39