Zgodnie z http://laravel.com/docs/eloquent można ukryć atrybuty z macierzy lub konwertera JSON, używając ukrytej zmiennej ukrytej $ w Modelu.Ukryte atrybuty Laravel. na przykład Hasło - zabezpieczenie
class User extends Eloquent {
protected $hidden = array('password');
}
Wielki, jednak po uruchomieniu print_r(User::all())
zaszyfrowane hasło jest wysyłane z serwera do klienta wewnątrz obiektu użytkownika.
Nie ogranicza się tylko do funkcji print_r(), jeśli konkretny użytkownik jest zapytany, w widoku zostanie wyświetlone zaszyfrowane hasło.
Czy istnieje sposób na zatrzymanie tego? Za każdym razem, gdy mój obiekt użytkownika jest sprawdzany, hasło zostanie wysłane wraz z nim jako część danych, nawet jeśli nie musi być.
Illuminate\Database\Eloquent\Collection Object
(
[items:protected] => Array
(
[0] => User Object
(
[hidden:protected] => Array
(
[0] => password
)
[connection:protected] =>
[table:protected] =>
[primaryKey:protected] => id
[perPage:protected] => 15
[incrementing] => 1
[timestamps] => 1
[attributes:protected] => Array
(
[id] => 1
[email] => [email protected]
[first_name] => Admin
[last_name] => User
[password] => $2y$10$7Wg2Wim9zHbtGQRAi0z6XeapJbAIoh4RhEnVXvdMtFnwcOh5g/W2a
[permissions] =>
[activated] => 1
[activation_code] =>
[activated_at] =>
[last_login] =>
[persist_code] =>
[reset_password_code] =>
[created_at] => 2013-09-26 10:24:23
[updated_at] => 2013-09-26 10:24:23
)
Ok ... o "$ user-> password' – Gravy
To jest coś, co należy do ciebie w kodzie, czy nie. Jeśli uważasz, że jest to poufne dane, nigdy nie pisz tego w widoku. :) –
Zgadzam się z tobą. Ale dlaczego miałbyś go chronić automatycznie poprzez żądanie json lub tablicę, ale nie przez obiekt? – Gravy