nginx 删除所有查询参数并向 React 应用程序添加新参数

nginx 删除所有查询参数并向 React 应用程序添加新参数

我想丢弃所有查询参数并添加一个新的(例如 DN=$ssl_client_s_dn)。原因是为了防止客户端发送此查询参数。

替换查询参数“DN”的值对我来说也是一个有效的解决方案。

我的配置文件是

server {
  listen 9999 ssl default_server;
  listen [::]:9999 ssl default_server;

   ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;

   ssl_certificate        /keystores/mycert.crt.pem;         ## 
   ssl_certificate_key    /keystores/mycert.key.pem;         ## 
   ssl_client_certificate /keystores/.npm.certs.pem;         ## CA Bundle
   ssl_verify_client on;

   root /home/edu/my-react-app;

   index index.html;

   server_name _;

   location / {
     try_files $uri $uri/ /index.html =404;
   }

   location = /login {
     if ($arg_DN = "") {
       rewrite ^ /login?DN=$ssl_client_s_dn redirect;
     }
     try_files /index.html =404;
   }
 }  

我想使用“DN”查询参数作为登录系统。但客户端可以通过发送属于具有更高权限的用户的虚假 DN 来欺骗我!

任何想法?

答案1

如果您想始终用作$ssl_client_s_dn参数,则使用:

location = /login {
    rewrite ^ /login?DN=$ssl_client_s_dn last;
}

您当前的解决方案仅在没有DN参数时才适用。

但是,什么让你认为客户端无法模仿该DN领域呢?

相关内容