http://laravel.com/docs/eloquent के अनुसार, मॉडल में संरक्षित $ छिपे हुए चर का उपयोग कर एरे या जेएसओएन रूपांतरण से गुण छुपा सकते हैं।लार्वा छुपे हुए गुण। जैसे पासवर्ड - सुरक्षा
class User extends Eloquent {
protected $hidden = array('password');
}
बढ़िया है, लेकिन जब print_r(User::all())
चल एन्क्रिप्टेड पासवर्ड सर्वर से ग्राहक के लिए उपयोगकर्ता ऑब्जेक्ट के अंदर भेजा जाता है।
यह केवल print_r() तक ही सीमित नहीं है, यदि विशिष्ट उपयोगकर्ता पूछताछ की जाती है, $user->password
दृश्य में एन्क्रिप्टेड पासवर्ड प्रदर्शित करेगा।
क्या इसे रोकने का कोई तरीका है? हर बार जब मेरे उपयोगकर्ता ऑब्जेक्ट की पूछताछ की जाती है, तो पासवर्ड डेटा के हिस्से के रूप में इसके साथ भेजा जाएगा, भले ही इसे होने की आवश्यकता न हो।
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
)
ठीक है ... कैसे '$ उपयोगकर्ता-> पासवर्ड ' – Gravy
यह आपके कोड पर उपयोग करने के लिए कुछ है या नहीं। यदि आपको लगता है कि यह एक संवेदनशील डेटा है, तो इसे कभी भी एक दृश्य पर लिखें। :) –
मैं आपसे सहमत हूं। लेकिन फिर आप एक जेसन या सरणी अनुरोध के माध्यम से स्वचालित रूप से इसकी रक्षा क्यों कर पाएंगे, लेकिन ऑब्जेक्ट के माध्यम से नहीं? – Gravy