Hooks de la sintaxis from: & to: en yml

Hola, me gustaría reconstruir la aplicación incluyendo algunas modificaciones a un archivo para deshabilitar la función de búsqueda para usuarios anónimos (más allá de solo con CSS).

¿Alguien podría proporcionarme documentación sobre la sintaxis de esos hooks para las partes from: y to:?

replace
filename:“/var/www/discourse/app/controllers/search_controller.rb”
from:
to:

En search_controller.rb, solo quiero reemplazar la línea 12 por
def show
por
def show
if current_user.present?

Y la línea 76
format.json { render_json_dump(serializer) }
por
format.json { render_json_dump(serializer) }
end

Hay una configuración de sitio oculta para lograr eso:

rate_limit_search_anon_global_per_minute
1 me gusta

Gracias por señalarlo. Solo para aclarar, ¿cuál es el nombre de la configuración oculta del sitio? ¿Y deshabilita completamente la búsqueda para usuarios anónimos o solo oculta los resultados? Estoy buscando una forma de bloquear el acceso a nivel del controlador, así que me pregunto si esa configuración por sí sola es suficiente o si todavía se necesita algún código personalizado.

Gracias por proporcionar la variable, con esta documentación pude hacerlo funcionar.

Así modifiqué el app.yml con lo siguiente, guardé, luego ./launcher restart app (no se necesitó reconstrucción)

env:
  DISCOURSE_RATE_LIMIT_SEARCH_ANON_GLOBAL_PER_MINUTE: 0

Ahora la página /search no es accesible = genial
Ahora el botón de búsqueda del frontend devuelve instantáneamente: has realizado esta acción demasiadas veces = genial
Puedes ocultar el botón de búsqueda con:

.anon #search-button {
	display: none !important;
}

Pero la pregunta es: ¿es esto exhaustivo? ¿Puede alguien simplemente crear una cookie de sesión simple para que parezca que está conectado y así poder acceder al contenido del sitio a través de las búsquedas?

Solución más exhaustiva pero incompleta:
El archivo es: /var/www/discourse/app/controllers/search_controller.rb
La modificación: agregar “if current_user.present?” después de “def show” y agregar un “end” al final de la condición.

Sin embargo, no pude hacerlo persistente después del reinicio, así que cualquiera es bienvenido a decir cómo hacerlo persistente después del reinicio con los ganchos de app.yml after_code replace: feature.

¿Como iniciar sesión para hacer búsquedas?

En el OP especificaste que quieres

Y esto es lo que hace esta configuración.

Por supuesto, no afectará a los usuarios que han iniciado sesión.

Quiero decir un usuario no registrado que crearía una cookie de sesión para hacerse pasar por uno registrado, pero tal vez estoy yendo demasiado lejos ya que supongo que la función currentUser verifica la clave de sesión.

:face_with_raised_eyebrow:

Eso sería un problema de seguridad. Si puedes lograr eso, asegúrate de informar a HackerOne

1 me gusta

“Eso sería un problema de seguridad. Si puedes lograr eso, asegúrate de informarlo a HackerOne

No, soy nuevo en Discourse, ni siquiera puedo citar correctamente :slight_smile: , solo estaba preguntando, tal vez había algún ingeniero de Discourse cerca :slight_smile: ; de todos modos, obtuvimos nuestra solución para este hilo gracias a ti Falco

1 me gusta

DISCOURSE_RATE_LIMIT_SEARCH_ANON_GLOBAL_PER_MINUTE: 0

pero no dude en probar esto a nivel del controlador:
/var/www/discourse/app/controllers/search_controller.rb
El cambio: agregue "if current_user.present?" después de "def show" y agregue un "end" al final de la condición.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.