【发布时间】:2019-12-11 13:13:46
【问题描述】:
在一些 SO 答案中建议使用以下方法,将经过身份验证的用户详细信息从后端 (PHP/Laravel) 传递到前端 (JavaScript/Vue)。不过,我想确认一下它的安全性。
<script>
window.App = {!! json_encode([
'user' => Auth::user()
]); !!};
</script>
假设详细信息确实包含用户生成的输入(如姓名和用户名),那么使用这种方法将经过身份验证的用户详细信息传递给 JavaScript 是否存在任何安全隐患? JavaScript 代码能否安全地处理这些数据以授权用户操作和/或将任何这些数据输出为 HTML?
或者用户在注册过程中可以在名称/用户名字段中键入的内容是否会破坏此代码/造成安全问题?在将 json_encode() 的输出传递给 JavaScript 之前对其进行清理有什么好处吗?
编辑
例如,假设我从服务器获取此数据,使用json_encode() 将其传递给 JavaScript,然后使用 JavaScript 以 HTML 格式输出用户名。如果允许用户在注册期间在“名称”字段中输入任何内容(最多达到一定的字符限制),是否可以以任何方式利用这一点?
【问题讨论】:
标签: javascript php laravel security authentication