Я размещаю простое веб-приложение (Ruby Sinatra). Я включил рекомендуемое промежуточное программное обеспечение защиты, как показано ниже:
configure do
use Rack::Session::Pool, :expire_after => 2592000 # seconds
use Rack::Protection::RemoteToken
use Rack::Protection::SessionHijacking
use Rack::Protection::EscapedParams
use BetterErrors::Middleware
use Rack::Protection::ContentSecurityPolicy
enable :sessions
end
Он отлично работает на локальном хосте, но когда я запускаю его на сервере и пытаюсь отправить форму, в ответе HTTP отображается «Запрещено». и из терминала входа в систему я вижу предупреждение, говорящее
[2020-02-28T05:52:49.931355 #11158] WARN -- : attack prevented by Rack::Protection::RemoteToken
Я пытался
добавить скрытую метку входа с именем authenticity_token со значением, равным <%= session[:csrf]%>
. То есть я не уверен, что это правильный способ использования токена.
применяется, давайте зашифруем, поэтому HTTP-запрос безопасен.
версии
Сервер Debian 9.10
Ruby (2.6.5)
Sinatra (2.0.8)
Более того
удалив этот модуль, веб-приложение работает отлично, но действительно ли я должен это делать?
Я использую Nginx для пересылки 80 туда, где находится порт веб-приложения (если это то, что вы назовите это, я не знаком с Nginx), будет ли проблема с Nginx?