사용자 계정에 로그인 할 때 손상된 콘텐츠 오류가 발생하는 웹 사이트가 있습니다. 이 오류는 Firefox에서 발생합니다. 클린 캐시로 로그인 할 때만 발생합니다. 한 번 로그인하면 오류가 발생하지만 건너 뜁니다. 그런 다음 로그 아웃하고 다시 로그인하면 기록을 지울 때까지 더 이상 문제를 해결할 수 없습니다. 기록 및 모든 캐시를 지우고 사이트로 돌아가서 다시 로그인하면 동일한 오류가 발생합니다. 나는 같은 시나리오와 크롬에서 Microsoft Edge에서 다른 오류 메시지를 보았지만 그들이 말한 것을 기억하지 못한다. (나는 Edge가 사이트에 연결할 수 없다고 말했고 크롬은 뭔가 다른 것을 말한 것으로 생각한다.) 나는 주변을 둘러 보았고 도대체 무슨 일이 일어나고 있는지 알아 내려고 해결책을 찾고 있었다. 그러나 나는 길을 잃었다.로그인시 firefox에서 웹 사이트가 손상되었습니다.
인터넷에서 쿠키를 지워서 해결할 수 있다고 한 가지를 보았지만이 사이트에는 쿠키를 보관하지 않습니다. 그리고 제 상황 - 그것은 신선한 역사 또는 문제가되는 정리 역사입니다. 따라서이 유형의 해결책은 제 상황과 반대입니다.
내 SSL 인증서인지 잘 모르겠습니다. 내가 namecheap에서 샀다. 나는 그것이 내 nginx 파일과 관련이 있는지 알지 못한다. 거기에서 나는 모든 HTTP를 https로 강제로 리다이렉션한다. 내 코드 자체와 관련이 있는지 알 수 없습니다. 내 서버 코드는 CakePHP 2로 코딩되어 있습니다.
아이디어가 있으십니까? 정말이 문제를 해결해야합니다. 곧이 사이트를 시작하려고합니다.
여기 내의 nginx 코드 :
server {
listen 80;
listen [::]:80;
server_name my_server_name.com;
return 301 https://$server_name/web/$request_uri/;
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm index.php;
ssl on;
ssl_certificate /path_to_ssl/cert_chain.crt;
ssl_certificate_key /path_to_ssl/my_server_name.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /path_to_ssl_certs/dhparam.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
location /web {
alias /usr/share/nginx/html/web/app/webroot;
try_files $uri $uri/ /web/app/webroot/index.php;
}
server_name my_server_name.com;
location =/{
return 301 https://$server_name/web/$request_uri/;
}
location/{
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
#include fastcgi_params;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /.well-known {
allow all;
}
location ~ /.sandbox {
}
location ~* \.(?:manifest:appcache|htm?|xml|json)$ {
expires -1;
}
업데이트 :이 문제에 대한 또 다른 단서를 발견하지만, 그것을 해결하지 못하고
. 내 debug.log에서 "손상된 컨텐트 오류"가 발생할 때마다이 오류가 발생한다는 것을 알았으며 다른 시간에는 발생하지 않았습니다. 이것은이 CakePHP AuthComponent에 오류가 :
2017-12-31 09:07:28 Notice: Notice (8): Undefined index: element in [/usr/share/nginx/html/web/app/Controller/Component/AuthComponent.php, line 827]
Trace:
ErrorHandler::handleError() - CORE/Cake/Error/ErrorHandler.php, line 230
AuthComponent::flash() - APP/Controller/Component/AuthComponent.php, line 827
AuthComponent::_unauthenticated() - APP/Controller/Component/AuthComponent.php, line 362
AuthComponent::startup() - APP/Controller/Component/AuthComponent.php, line 304
ObjectCollection::trigger() - CORE/Cake/Utility/ObjectCollection.php, line 128
CakeEventManager::dispatch() - CORE/Cake/Event/CakeEventManager.php, line 243
Controller::startupProcess() - CORE/Cake/Controller/Controller.php, line 678
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 189
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 167
require - APP/webroot/index.php, line 110
[main] - ROOT/index.php, line 43
(가) $ this-가> 플래시가이 선에 대한 인덱스 '요소'가 없다고 말하고있다 :
$this->Session->setFlash($message, $this->flash['element'], $this->flash['params'], $this->flash['key']);
내가 밖으로 그 라인을 주석하고 교체를 이 번호는 다음과 같습니다.
$this->Session->setFlash(
$message,
array_key_exists('element', $this->flash) ? $this->flash['element'] : 'default',
array_key_exists('params', $this->flash) ? $this->flash['params'] : array(),
array_key_exists('key', $this->flash) ? $this->flash['key'] : 'flash'
);
해결 방법은 다음과 같습니다.
로그 아웃하고 모든 캐시를 지우고 모든 것을 다시로드 한 다음 다시 로그인하면 여전히 손상된 콘텐츠 오류가 발생하지만 변경 한 후에는 debug.log에 새로운 오류가 기록되지 않습니다. 그래서 그것은 나의 단서이지만, 나는 그것을 고칠 수 있었다.
업데이트 : 내 요청 & 응답 헤더
는 여기에이 오류가 발생하면 파이어 폭스가 나를 보여줍니다 요청 & 응답 헤더입니다.
요청 헤더 :
Accept
text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding
gzip, deflate, br
Accept-Language
en-US,en;q=0.5
Connection
keep-alive
Content-Length
89
Content-Type
application/x-www-form-urlencoded
Cookie
__cfduid=dc953b88930da52f0ae3f…9-3f87-477c-b65e-380b2034aa54
Host
my_website_url
Referer
https://my_website_url.com/web/users/login
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (X11; Ubuntu; Linu…) Gecko/20100101 Firefox/57.0
그리고 응답 : 당신은 당신이 어떤 쿠키를 사용하지 않는 생각하지만
cf-ray: 3d76d2695c6655c4-ORD
content-type
text/html; charset=UTF-8
date
Wed, 03 Jan 2018 14:59:26 GMT
location
///
server
cloudflare
set-cookie
CAKEPHP=le4cq2kpkvjqvt5lvcqel8…400; path=/; secure; HttpOnly
strict-transport-security
max-age=15768000
X-Firefox-Spdy
h2
왜 '엄격 전송 보안'을 두 번 설정 했습니까? –
Richard Smith 님 감사합니다. 나는 심지어 그것을 알아 차리지 못했다. 그것은 의도하지 않은 것입니다. 그것은 그 문제의 원인 일 수 있습니까? 나는 그것이 맞는지 아닌지 알아봐야한다. – user904542
첫 번째 Strict-Transport-Security 라인을 제거하고 내 nginx를 다시 시작했지만 여전히 동일한 문제가 있습니다. – user904542