GVKun编程网logo

如何在rails中安全地保存/检索HTML标签到数据库?

21

本文的目的是介绍如何在rails中安全地保存/检索HTML标签到数据库?的详细情况,我们将通过专业的研究、有关数据的分析等多种方式,同时也不会遗漏关于html–在rails中定义锚标签的正确方法是什么

本文的目的是介绍如何在rails中安全地保存/检索HTML标签到数据库?的详细情况,我们将通过专业的研究、有关数据的分析等多种方式,同时也不会遗漏关于html – 在rails中定义锚标签的正确方法是什么?、html – 如何在Rails 4中修改rails-bootstrap-forms tabindex、html – 如何在Rails中单击按钮时打开新选项卡?、php – 如果无法通过云验证付款,如何在云中安全地保存订单?的知识。

本文目录一览:

如何在rails中安全地保存/检索HTML标签到数据库?

如何在rails中安全地保存/检索HTML标签到数据库?

我需要在我的rails应用程序中安全地将HTML标记保存/检索到数据库.目前我保存HTML没有任何验证如下:

在视图中我使用<%= raw @ page.desription%>.它按预期工作.但我需要知道它是否安全?

最佳答案
你永远不能确定它是安全的.始终将所有用户输入视为敌对.

但是,如果“安全”是指“没有可能真正有害的元素,如< script> s和< style> s”,那么我会向您呈现Sanitization Helper.您可以从数据库中打印HTML并仅允许某些标签的白名单.

<%= raw sanitize @ page.description,tags:%w(h2 p strong em a),attributes:%w(id class href)%>

上面的例子将允许所有h2,p,strong,em和a标签,以及它们上只有id,class和href属性.其他一切都将被删除.

html – 在rails中定义锚标签的正确方法是什么?

html – 在rails中定义锚标签的正确方法是什么?

从 documentation(和谷歌)显而易见,如何生成一个链接,例如播客/ 5#评论。你只是传递一个值为:anchor到link_to。

我关心的是生成< a name =“comments”>注释< / a>的简单任务。标签,即第一链接的目的地。

我已经尝试了以下,虽然他们似乎工作,但是标记并不是我预期的:

link_to "Comments",:name => "comments"
link_to "Comments",:anchor => "comments"

我想我缺少一些明显的东西。谢谢。

解决方法

你被Ruby的语法糖(Rails大量使用)变得困惑。让我在回答你的问题之前简要解释一下。

当一个ruby函数使用一个作为一个哈希的单个参数:

def foo(options)
  #options is a hash with parameters inside
end

你可以“忘记”放括号/括号,并像下面这样调用:

foo :param => value,:param2 => value

Ruby将填写空白,并了解您要完成的是这样的:

foo({:param => value,:param2 => value})

现在,对于你的问题:link_to需要两个可选的哈希值 – 一个叫做options,另一个是html_options。你可以想像这样定义(这是一个近似值,它更复杂)

def link_to(name,options,html_options)
...
end

现在,如果你这样调用:

link_to 'Comments',:name => 'Comments'

Ruby会有点困惑。它将尝试为您填写空白,但错误地:

link_to('Comments',{:name => 'Comments'},{}) # incorrect

它会认为name => “评论”部分属于选项,而不是html_options!

你必须通过自己填充空白来帮助红宝石。把所有括号放在适当的位置,并按照预期的方式行事:

link_to('Comments',{},{:name => 'Comments'}) # correct

如果需要,您可以实际删除最后一组括号:

link_to("Comments",:name => "comments") # also correct

为了使用html_options,你必须先留下第一组括号。例如,您需要使用确认消息和名称的链接:

link_to("Comments",{:confirm => 'Sure?'},:name => "comments")

其他导轨助手具有类似的构造(即form_for,collection_select),因此您应该学习此技术。有疑问,只需添加所有括号。

html – 如何在Rails 4中修改rails-bootstrap-forms tabindex

html – 如何在Rails 4中修改rails-bootstrap-forms tabindex

我已经和Rails玩了大约一年了,我正在研究我的第一个实际投入生产的应用程序.由于这是一个更实用的应用程序,并且它不必非常华丽,我选择使用 Bootstrap CSS库来加速UI设计.

我正在使用rails-bootstrap-forms宝石,为了布局,我在不同的div中有一些文本字段.我想修改字段的tabindex,以便first_name和last_name字段在Tab键顺序中彼此相邻.有没有办法传递表单生成器这个选项?

这是HTML格式的片段:

<div>
  <div>
    <%= f.text_field :first_name,label_col: "col-xs-6",control_col: "col-xs-6" %>
    <%= f.text_field :teacher,control_col: "col-xs-6" %>              
  </div>
  <div>
    <%= f.text_field :last_name,control_col: "col-xs-6" %> 
    <%= f.text_field :room,control_col: "col-xs-6" %>
  </div>
</div>

解决方法

只需将关键tabindex添加到表单助手标记.例如,

<%= f.text_field'first_name',:tabindex => 1%>

html – 如何在Rails中单击按钮时打开新选项卡?

html – 如何在Rails中单击按钮时打开新选项卡?

我有一个按钮,用户导航到另一个页面. (它必须是按钮而不是链接).我想在新标签页面中打开页面(甚至是新窗口!).我必须使用 JavaScript吗?还是有别的办法!我将感激你的帮助.

干杯.

解决方法

扩展答案建议在Rails中使用`target =“_ blank”…

如果您正在使用button_to帮助程序,则会自动将其包装在Rails的表单中.这是需要此属性的表单标记.为了得到它,将它作为html选项的散列中的值传递,例如:

button_to t(:translated_text),foo_path(foo.id),class: 'btn btn-primary',form: {target: '_blank'}

class:和form:是html_options哈希的元素. form:选项是特殊的,因为它告诉Rails你想要将HTML选项传递给form标签,而不是按钮本身的输入标签.

php – 如果无法通过云验证付款,如何在云中安全地保存订单?

php – 如果无法通过云验证付款,如何在云中安全地保存订单?

我正在开发一个移动票务销售应用程序.该系统允许用户使用第三方API(Cardio)支付项目费用,将所有信息保存到我的服务器,快乐地坐在云端.

问题归结为:
因为(1)付款流程完全在电话上发生,并且(2)没有API允许我的服务器与付款处理器核实付款实际发生,我想知道如何最好地验证是否用户确实已经支付了该项目,然后在我的服务器上将其标记为已付款.

您看,用户可以手动关注我的api呼叫,登录他们的帐户,然后将命令发送到我的服务器,将购买标记为付款而无需支付该项目.

所以问题是:
如何验证付款是在我的服务器上进行的,还是通过移动应用程序进行某种握手或加密?

我目前的做法:
我通过SSL(HTTPS)调用将所需的纯文本信息发送到服务器.除此之外,我发送该字符串的哈希并验证在我的服务器上使用相同的算法,发送的字符串与发送的哈希匹配.我想,我可以使用某种秘密密钥来生成此哈希,然后验证纯文本与服务器端的哈希值匹配,以确保没有任何更改.我对这个解决方案的问题是,我不认为它真的那么安全……有人可以,而不是轻易破解算法,因为它们被赋予加密和纯文本.

谢谢你的期待!

斯蒂芬

简短的回答是你不能相信客户,期间.随心所欲地抓住它 – 这无法构建交易信息.

如果您的支付处理器没有您可以依赖的API,那么您需要一个更好的API …它可以立即和将来解决您的问题.

今天的关于如何在rails中安全地保存/检索HTML标签到数据库?的分享已经结束,谢谢您的关注,如果想了解更多关于html – 在rails中定义锚标签的正确方法是什么?、html – 如何在Rails 4中修改rails-bootstrap-forms tabindex、html – 如何在Rails中单击按钮时打开新选项卡?、php – 如果无法通过云验证付款,如何在云中安全地保存订单?的相关知识,请在本站进行查询。

本文标签: