我有一些使用jQuery框架编写的脚本。
var site = {
link: $('#site-link').html()
}
这将获取 div 中的 htmlsite-link
并将其分配给link
. 我后来保存link
到数据库。
我的问题是我不想要 html,因为我认为这很危险,也许?
我努力了:
link: $('#site-link').val()
...但这只是给了我一个空白值。
如何在没有任何标记的情况下获取 div 内的值?
我有一些使用jQuery框架编写的脚本。
var site = {
link: $('#site-link').html()
}
这将获取 div 中的 htmlsite-link
并将其分配给link
. 我后来保存link
到数据库。
我的问题是我不想要 html,因为我认为这很危险,也许?
我努力了:
link: $('#site-link').val()
...但这只是给了我一个空白值。
如何在没有任何标记的情况下获取 div 内的值?
像这样使用.text()
jquery方法:
var site = {
link: $('#site-link').text()
}
这是一个做什么和做什么.val()
的例子:jsfiddle example.html()
.text()
使用 jQuery 的.text()函数来获取唯一的文本。
var site = {
link: $('#site-link').text()
}
为避免使用 html,您将需要使用 jquery 的 text() 方法。
var site = {
link: $('#site-link').text()
}
如果您打算将结果存储在数据库中并且您担心 HTML,那么使用类似的东西.text()
而不是.html()
只是一种安全错觉。
永远不要相信来自客户端的任何东西!
客户端的一切都是可替换的,很容易被客户端劫持。例如,使用Tamper Data firefox 插件,即使是我妈妈也可以更改发送到服务器的数据。她可以发送任何东西来代替链接。像恶意脚本、整个网站等...
重要的是,在将“链接”保存到数据库之前,您必须在服务器端对其进行验证。您可以编写一个正则表达式来检查字符串是否是有效的 url,或者只是替换所有 html。
在输出之前对其进行 html 编码也是一个好主意。这样,即使 html 进入您的数据库,在编码后它也只是一个无害的字符串(还有其他需要注意的东西,比如UTF-7,但网络是一个危险的地方)。