¡que tengas un lindo día! Sinceramente pido su consejo y ayuda. Uso el back-end escrito por golang. Espero que mi página web pueda cargar CSS e imágenes. Yo uso los siguientes métodos:
fs := http. FileServer(http.Dir("mystatic/")) http. Handle("/static/", http.StripPrefix("/static/", fs))Luego cargo CSS e imágenes de la siguiente manera:
<img src= "/static/img/name_of_picture.jpeg" class="img-fluid" alt="fail" > <link href="/static/assets/css/bootstrap.min.css" rel="stylesheet" type="text/css" id="bs-default-stylesheet" />Sin embargo, existe un problema grave de que el cliente accederá a los recursos estáticos utilizando la URL más /static/, y accederá y descargará directamente todo mi CSS e imágenes. ¿Cómo puedo evitar que el cliente acceda a estos recursos directamente?
Traté de usar nginx para prohibir el acceso a /static/, pero la página web también estaba bloqueada y no podía cargar CSS ni imágenes. Noté que otros sitios web deberían usar métodos para prohibir el acceso directo a los recursos estáticos del sitio web (la visualización de la página web no tiene permiso), pero lo intenté durante varios días y fallé, y no sé qué palabras clave usar para encontrar la respuesta, realmente espero que pueda guiarme sobre cómo evitar que los clientes usen directamente el sitio web y /static/ accedan a mis recursos estáticos. ¡Muchos gracias!
//------------------------------------------------ ----------------
Notas adicionales:
Tengo la idea de que puedo leer y escribir imágenes directamente en el sitio web, pero no sé cómo escribir varias imágenes en una página web en forma de flujo de datos en golang;
¿Y no sé cómo usar golang para leer archivos CSS directamente de acuerdo con la ruta real y luego volver a la página web?
códigos:
func go_ web_ webs1_ (w http.ResponseWriter, r *http.Request) { t, _ := template. ParseFiles("static/web/basic.html", "static/web/body.html") t.Execute(w, nil) }Si la imagen se puede cargar usando lo siguiente,
func showPicHandle( w http.ResponseWriter, req *http.Request ) { file, err := os. Open("." + req. URL. Path) errorHandle(err, w); defer file. Close() buff, err := ioutil. ReadAll(file) errorHandle(err, w); w.Write(buff) }Entonces puedo escribir la imagen directamente en la página sin usar recursos estáticos, pero no sé cómo cargar varias imágenes de esta manera y devolverlas a los html anteriores al mismo tiempo.
t, _ := template. ParseFiles("static/web/basic.html", "static/web/body.html")Me pregunto si la idea anterior también es una solución y cómo debería implementarse.