![]() |
1
1
在PHP本身中,将值输出到javascript需要与输出到HTML不同的编码方案。如果你不正确的话,你会面临同样的跨站点脚本问题,就像你没能使用一样。
如果你的名字包含撇号或反斜杠,这两个词都会给你带来问题。这是为数不多的几个地方之一
另外,您应该知道,javascript文件可以包含在另一个域上的一个<script>标记中,该域通常会被拒绝访问javascript相同来源策略下的页面。如果脚本包含敏感的特定于用户的数据,则这将使您面临跨站点信息泄漏攻击:
最后,您必须处理缓存。如果您的数据是高度动态的,那么您需要在脚本响应上不设置缓存头,这样浏览器就不会缓存它。另一方面,对于不太经常更改的数据,您希望处理到期、etags,如果修改了自/未修改的头,那么浏览器可以更高效地缓存;如果可以帮助的话,您不希望让10万人一次又一次地获取脚本,从而在服务器上造成负载。 处理好缓存可能会非常痛苦,当你出错时会产生奇怪的结果。 总之,这就是为什么PHP模板化到JavaScript中通常不受欢迎的原因。对于脚本的主体是静态的并且必须添加的数据量很小的典型用法,通常最好将数据模板化到HTML中,或者在关联元素的属性中,或者将其隐藏在可从DOM读取的注释中,或者通过包含内联脚本<script>。 |
![]() |
2
5
不,服务器将与任何其他PHP文件一样分析它。
HTTP请求将检索与任何其他网页完全相同的文件。
如果你把它和
就浏览器而言,它只是一个javascript——它不知道它是由PHP生成的,因此没有额外的考虑。 只要你不留下一个方法把javascript注入到文件中,你会没事的。只需确保不要信任输入和转义输出。 |
![]() |
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 6 月前 |
![]() |
Alex · 在轻量级中同时解构和不解构变量 7 月前 |
![]() |
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 7 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 7 月前 |
![]() |
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 7 月前 |