Cómo estructurar esta configuración específica

0

Un usuario va a un sitio web y escribe información en los campos input

<input class="form-control" type="text" id="age" name="age" value="<?php echo htmlspecialchars($_POST['age']); ?>">

y también carga archivos

<input id="misc_files" type="file" class="file" multiple data-show-upload="false" data-show-caption="true" name="misc_files[]">

que luego se pasa a un script action.php que guarda estos datos en un archivo delimitado por tabuladores (archivos guardados por separado) llamado file.txt . El archivo contiene información privada. Ahora, en el mismo script action.php se llama un script Ruby a través de la función del sistema de PHP:

system('ruby /lib/program.rb');

program.rb contiene variables de usuario / paso que se usan en una gema de Ruby llamada watir-webdriver . Consulta aquí si no estás familiarizado. Básicamente, le permite a Ruby abrir un navegador y manipular el navegador mediante programación. De todos modos, program.rb contiene una contraseña que permite a watir-webdriver iniciar sesión en otra cuenta del sitio para enviar estos datos mediante programación. program.rb está en un servidor remoto al que se accede a través de un script PHP que se llama desde cualquier persona en Internet. ¿Cómo debo estructurar los permisos, etc. para que esto sea seguro. No puedo permitirme tener program.rb para exponer el combo de usuario / pase de mi cliente de algún pirateo inteligente imprevisto que, en última instancia, permite que un atacante descargue program.rb y vea el combo de usuario / pase.

Ejemplo de script Ruby:

require 'watir-webdriver'

b = Watir::Browser.new :chrome
b.goto 'https://www.thesite.com/login'

b.text_field(:id => 'session_email').set 'username'
b.text_field(:id => 'session_password').set 'password'

b.form(index:0).submit
sleep 1

#(code to submit input/file data)
    
pregunta Forwarding 18.10.2016 - 20:06
fuente

0 respuestas

Lea otras preguntas en las etiquetas