【问题标题】:Is it possible to hide data-attributes visible when inspecting a page?检查页面时是否可以隐藏可见的数据属性?
【发布时间】:2019-03-28 00:32:48
【问题描述】:

我正在通过数据属性传递数据,但我不希望用户能够检查页面并看到这些数据。

如何向用户隐藏这些数据?

我目前拥有的:

<li data-first="<%= somedata %>" data-second="<%= somedata %>" data-third="<%= somedata %>" class="someclass">
</li>

Which is displayed as :

<li data-first="datatohide" data-second="datatohide" data-third=" datatohide" class="someclass">
</li>

我希望用户在检查时看到的内容:

<li class="someclass">
</li>

OR 

<li data-first="" data-second="" data-third="" class="someclass">
</li>

【问题讨论】:

  • 不要认为这是可能的。为什么需要这些数据?也许还有其他方法可以解决您的问题
  • 没有。如果您不希望用户看到这些数据属性,请不要将它们放在 HTML 中,并找到一种不同的方式来执行数据属性应该表示的内容。如果您的 HTML 节点上有很多不同的数据属性,这通常表明使用 HTML 作为数据模型,而不是让 HTML 显示数据模型的视图。 (基本 MVC)
  • @Shilly 知道了!谢谢你的回答。
  • @Shilly 所以我正在迭代(在我看来)一个实例变量(在我的控制器中声明),我需要从 js 文件中的这些实例访问数据。我将它们作为数据属性传递,因为我认为这是这样做的方法。但我意识到拥有多个数据属性可能不是要走的路。您是否看到任何替代方案?
  • 我不是 ruby​​ 专家,但由于它的模型是服务器端的,我希望任何更改都来自服务器,所以我不完全理解。但是在单页应用程序等中,我们只要求服务器提供当前视图用于渲染的数据的 json 表示,这样您就可以在内存中拥有一个对象或数组来操作,而不必从 DOM 中查询。这确实需要您在该 json 文件中隐藏敏感数据,因此服务器可能可以发送某种命令字符串而不是数据本身。还有更多的背景信息吗?

标签: javascript ruby-on-rails custom-data-attribute


【解决方案1】:
<li data-first="<% somedata %>" 
    data-second="<% somedata %>" 
    data-third="<% somedata %>" 
    class="someclass">
</li>

将显示为:

<li data-first="" data-second="" data-third="" class="someclass"></li>

erb 中,&lt;%= 将在视图中呈现代码块的结果,而&lt;% 仅用作代码块并且不会呈现它。

如果您需要视图中的数据,那么您必须假设它对任何用户都是可见的。因此,您需要通过其他方式规避该漏洞。

【讨论】:

  • 你误解了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-16
  • 2016-06-26
  • 2012-05-10
  • 2011-10-28
  • 1970-01-01
相关资源
最近更新 更多