Haproxy configで下記の設定を使用して、WebアプリのURLを特定の信頼できるIPに正常に制限しました
acl trusted-ip src -f /etc/haproxy/whitelist.lst
acl protected-page url /abc /abc/
acl allowed-page url /abc/api/
http-request deny if protected-page !allowed-page !trusted-ip
すべてのユーザーに「/ abc/api」URLにアクセスしてもらいたいのですが、「/ abc」には信頼できるIPだけにアクセスできます。ここでの問題は、信頼されていないIPの誰かが「/ abc?something」と入力した場合、「/ abc」が開くURLです。これを回避するために、設定を次のように変更しました。
acl trusted-ip src -f /etc/haproxy/whitelist.lst
acl protected-page url_reg ^(?!\/abc\/api).*$
http-request deny if protected-page !trusted-ip
これで、上記の問題を解決できましたが、「/ abc/api」には誰もアクセスできません。どんな助けでもありがたいです。
path
の代わりにurl
を使用します
これにより、リクエストのURLパスが抽出されます。これは、最初のスラッシュで始まり、疑問符の前で終わります(ホスト部分なし)。典型的な使用法は、プリフェッチ対応のキャッシュ、およびデータベースから複数の情報を集約してそれらをキャッシュに保持する必要があるポータルでの使用です。発信キャッシュでは、代わりに「url」を使用する方が賢明です。 ACLでは、通常、正確なファイル名(例: "/login.php")、または派生フォームを使用したディレクトリ部分を照合するために使用されます。 「url」および「base」フェッチメソッドも参照してください。
ACL derivatives : path : exact string match path_beg : prefix match path_dir : subdir match path_dom : domain match path_end : suffix match path_len : length match path_reg : regex match path_sub : substring match