Puncte:0

Eliminați versiunea Apache Tomcat din aplicație la nivel de container

drapel cn

Încerc să trimit un OBȚINE cerere către aplicația mea așa cum se arată:

Cerere
GET /c%3a%5cboot.ini HTTP/1.1
Gazdă: myapp.io
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Limba de acceptare: en-us,en;q=0,5
Cache-Control: fără cache
Cookie: appCookie=MH3.7.9823272323477.1639691466;
Agent utilizator: Mozilla/5.0 (Windows NT 10.0; x64) AppleWebKit/537.36 (KHTML, ca Gecko) Chrome/79.0.39
45,0 Safari/537,36

Raspunsul este:

HTTP/1.1 400
Conexiune: păstrați-vă în viață
Lungimea conținutului: 795
Limbă de conținut: en
Tip de conținut: text/html; set de caractere=utf-8
Data: joi, 16 decembrie 2021 21:51:50 GMT
<!doctype html><html lang="ro"><head><title>Starea HTTP 400 â Solicitare greșită</title><style type="text/c
ss">corp {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76
;} h1 {dimensiunea fontului:22px;} h2 {dimensiunea fontului:16px;} h3 {dimensiunea fontului:14px;} p {dimensiunea fontului:12px;} a {culoare:negru
;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>Starea HTTP 400
â Solicitare greșită</h1><hr class="line" /><p><b>Tip</b> Raport de stare</p><p><b>Mesaj</b> URI nevalid
</p><p><b>Descriere</b> Serverul nu poate sau nu va procesa cererea din cauza a ceva care este
percepută a fi o eroare a clientului (de exemplu, sintaxă de solicitare incorectă, încadrare nevalidă a mesajului de solicitare sau
rutarea cererilor înșelătoare).</p><hr class="line" /><h3>Apache Tomcat/8.5.68</h3></body></html>

Din acest răspuns, există o modalitate de a elimina versiunea în <h3>Apache Tomcat/8.5.68</h3> și afișează-l ca just <h3>Apache Tomcat</h3> la nivel de container, deoarece aceasta este o problemă de securitate.

Ale mele Dockerfile arata asa:

DE LA maven:3.6.3-jdk-11 ca constructor

COPIE . .
RUN pachetul mvn clean -Dapp.host=$MYAPP_HOST

DE LA tomcat:8.5-jdk11
ENV TZ=America/New_York
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

COPIEAZĂ --from=builder ./target/app.war /usr/local/tomcat/webapps/ROOT.war
RUN mkdir /usr/local/tomcat/webapps/ROOT
RUN cp /usr/local/tomcat/webapps/ROOT.war /usr/local/tomcat/webapps/ROOT/ROOT.war
RUN cd /usr/local/tomcat/webapps/ROOT && jar xvf ROOT.war

RUN apt-get update && apt-get install -y nginx && mkdir /etc/nginx/certs
COPIEAZĂ proxy.conf /etc/nginx/
COPIEAZĂ vhosts.conf /etc/nginx/conf.d/

EXPUNEREA 443
RUN echo '#!/bin/bash\nnginx\ncatalina.sh run' > start-wrapper.sh && chmod +x start-wrapper.sh && mv start-wrapper.sh /usr/bin/
CMD [„start-wrapper.sh”]

Versiunea Apache Tomcat poate fi eliminată aici la nivel de container docker?

drapel jp
https://tomcat.apache.org/tomcat-8.5-doc/security-howto.html#Valves
merilstack avatar
drapel cn
@AlexD poate folosi această comandă pentru a modifica versiunea apache? ```sed -i \ 's#^server.info=.*#server.info=Apache Tomcat#' \ CATALINA_BASE/lib/org/apache/catalina/util/ServerInfo.properties```
Puncte:0
drapel in

Informațiile despre versiune pentru serverul Apache sunt definite în cod, nu în configurație sau într-un fișier extern. Pentru a schimba asta, ar trebui să bifurcați repo-ul și să vă construiți propria versiune după efectuarea modificării.

merilstack avatar
drapel cn
Ce schimbare trebuie făcută?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.