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
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.
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:
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.
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.
“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 , solo estaba preguntando, tal vez había algún ingeniero de Discourse cerca ; de todos modos, obtuvimos nuestra solución para este hilo gracias a ti Falco
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.