open form example collective php laravel-5 laravel-blade laravelcollective

php - collective - laravel form example



Usando doble llave en Colectivo Laravel (1)

Intento crear un formulario que cree usuarios así y este formulario se usará para mostrar datos también utilizando la vinculación del modelo de formulario:

{{ Form::open([''url'' => ''admin/users/create'']) }} <div class="form-group"> {{ Form::label(''first_name'', ''First Name : '') }} {{ Form::text(''first_name'', null, [''class'' => ''form-control'']) }} </div> <div class="form-group"> {{ Form::label(''last_name'', ''Last Name : '') }} {{ Form::text(''last_name'', null, [''class'' => ''form-control'']) }} </div> {{ Form::close() }}

sin embargo, muestra el código, no la vista real, así que veo en mi navegador este código:

<form method="POST" action="http://localhost:8000/admin/users/create" accept-charset="UTF-8"> <input name="_token" type="hidden" value="X5MA46MJctYOYeMtZF1RoQKYmWDtAbsSoxwoOA8Y"> <label for="first_name">First Name : </label> <input class="form-control" name="first_name" type="text" id="first_name"> <label for="last_name">Last Name : </label> <input class="form-control" name="last_name" type="text" id="last_name"> </form>

pero cuando intentas usar {!! !!} {!! !!} como los corchetes de abrir y cerrar, el código funciona y muestra la vista real.

Todavía no entiendo por qué no puedo usar {{ }} como mi paréntesis usando laravel-collective y si ves este Proyecto , funciona bien.

También un poco temeroso del ataque XSS al igual que la documentación de Laravel en la sección que muestra los datos de Unescaped :

Nota: Tenga mucho cuidado al hacer eco del contenido proporcionado por los usuarios de su aplicación. Utilice siempre la sintaxis doble del corsé para evitar cualquier entidad HTML en el contenido.

alguna explicación útil sobre esto? gracias

NOTA: estoy usando Laravel versión 5.1.40 (LTS)


Porque {{}} se usa para escapar de entidades HTML para evitar que los ataques XSS muestren su entrada desde su servidor / base de datos.

por lo tanto, si alguien insertó un código malicioso en su base de datos, no sería ejecutable para un usuario y simplemente se imprimiría en la pantalla. al igual que

$dbValue = "<script> Some evil code </script>"; {{ $dbValue }}

Saldrá como esto

<script> Some evil code </script>

Y debido a que Laravel Collective HTML FORM ES generando HTML para que usted lo muestre, entonces tiene que usar {!! !!} para evitar escaparse.

{!! "<b>Bold Text</b>" !!}

entonces dará salida a esto

Texto en negrita

Para generar HTML está bien, pero debe tener cuidado con los valores que se envían a su servidor y que se muestran a un usuario. Allí siempre tendrás que escapar de tus datos con {{}}