我的网站上有一个文本框,我需要存储用户输入的数据库,并在以后检索它.我需要完全按照用户输入的方式存储它,包括特殊字符,回车等.
我应该在PHP中使用哪个进程将其存储在我的数据库字段(这是一个'text'字段)中?我应该使用PHP的html_encode或类似的东西吗?
谢谢.
编辑:我还需要存储正确的格式,即选项卡和多个空格.
我正在使用这段简短的代码:
var d = itemID + "," + quantity;
var CookieData = $.cookie("storebasket");
if(CookieData == null || CookieData == "") {
$.cookie("storebasket", d, { path: '/', expires: 60 });
} else {
$.cookie("storebasket", CookieData + "|" + d, { path: '/', expires: 60 });
}
Run Code Online (Sandbox Code Playgroud)
但是,值ALWAYS将变为HTML编码.例如:
5%2C1
Run Code Online (Sandbox Code Playgroud)
5,1
Run Code Online (Sandbox Code Playgroud)
我尝试过unescape但没有运气:
$.cookie("storebasket", unescape(d), { path: '/', expires: 60 });
Run Code Online (Sandbox Code Playgroud)
还有什么想法吗?
我使用的标签库,但它是像呈现,而不是输出性格怪异的行为,<,",和>它输出<,"和 >.
代码:
class LoginTagLib {
static defaultEncodeAs = [taglib:'html']
//static encodeAsForTags = [tagName: [taglib:'html'], otherTagName: [taglib:'none']]
def loginControl =
{
if(session.user)
{
out << "Hello ${session.user.name}"
out << """[${link(action:"logout", controller:"user"){"Logout"}}]"""
}
else
{
out << """[${link(action:"login", controller:"user"){"Login"}}]"""
}
}
Run Code Online (Sandbox Code Playgroud)
}
在.gsp我有
<g:loginControl />
Run Code Online (Sandbox Code Playgroud)
当我打开页面时,我有:
Hello Jane Smith[<a href="/Blogito/user/logout">Logout</a>]
Run Code Online (Sandbox Code Playgroud)
但页面的源代码是:
<div id="loginHeader">
Hello Jane Smith[<a href="/Blogito/user/logout">Logout</a>]
</div>
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用.encodeAsHTML(),decodeHTML,.replace('>', '<')和迄今没有奏效
Django 转义这些字符 : & < > " ',这足以在 HTML 元素中插入数据。但是,如果您想在属性中设置不受信任的数据,OWASP建议转义更多字符:
除字母数字字符外,请使用 &#xHH; 转义 ASCII 值小于 256 的所有字符。格式(或命名实体,如果可用)以防止切换出属性。
原因是,很容易错过属性上的引号,并且未加引号的属性可以用许多字符来分解,包括[space] % * + , - / ; < = > ^ and |
是否有内置函数或库可以实现此目的?
PS 另一篇值得一读的博客文章解释了为什么在某些情况下需要更广泛的转义函数。: http: //wonko.com/post/html-escaping
给这个参数的描述中,convmap为方法mb_encode_numericentity在PHP手册是含糊我。有人会帮助更好地解释这一点,或者如果它对我来说足够了,也许可以“把它放倒”?这个参数中使用的数组元素是什么意思?联机帮助页中的示例 1 具有
<?php
$convmap = array (
int start_code1, int end_code1, int offset1, int mask1,
int start_code2, int end_code2, int offset2, int mask2,
........
int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN, then
// it converts value to numeric string reference.
?>
Run Code Online (Sandbox Code Playgroud)
这是有帮助的,但后来我看到了很多使用示例,例如array(0x80, 0xffff, 0, 0xffff);让我失望。这是否意味着偏移量0和掩码将是0xffff,如果是这样,偏移量是否意味着开始转换的字符串中的字符数,mask …
有没有一种方法可以将Json.Net配置为自动编码所有字符串,例如HtmlEncode(myString)在对模型进行序列化时?
我的问题,如下所述,是如何使用R来读取包含HTML表情符号代码的字符串��,并且(1 ) in the parsed string, or (2) convert it into its text equivalent (":hugging face:")?
我有一个文本消息的XML数据集(来自Android/iOS应用程序[信号])(https://signal.org/),我正在阅读R文本挖掘项目.数据看起来像这样,每个文本消息都在sms节点中表示:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- File Created By Signal -->
<smses count="1">
<sms protocol="0" address="+15555555555" contact_name="Jane Doe" date="1483256850399" readable_date="Sat, 31 Dec 2016 23:47:30 PST" type="1" subject="null" body="Hug emoji: ��" toa="null" sc_toa="null" service_center="null" read="1" status="-1" locked="0" />
</smses>
Run Code Online (Sandbox Code Playgroud)
我目前正在使用xml2R 的包读取这些数据.xml2::read_xml但是,当我使用该函数时,我收到以下错误消息:
Error in doc_parse_raw(x, encoding = encoding, base_url …Run Code Online (Sandbox Code Playgroud) 我有一个Winform应用程序,我在其中检查c:\somefolder\my file name.txtXML中是否存在完全限定的文件名.
不幸的是,XML保存了html编码的字符串,因此c:\somefolder\my file name.txt变为c:/somefolder/my%20file%20name.txt(不是从反斜杠到forforlash的变化,而是%20而不是blankspace).
如何在winform应用程序中HTMLEncode字符串?
我有一个系统,允许用户将HTML保留字符输入文本区域,然后将其发布到我的应用程序.然后将该信息保存到数据库中以供以后检索和显示.警报(应该)在你的头脑中消失.我需要确保避免XSS攻击,因为我会在应用程序的其他位置显示此数据.我看到以下是我的选择:
我可以在进入数据库的过程中对数据进行HTML编码,因此数据库中不会输入任何HTML字符.
< > &等.每当我需要在网页上显示数据时,我都可以对数据进行HTML编码.
我可以使用经过充分测试的第三方库来删除潜在危险的HTML并获取安全的HTML片段来保存数据库,而不是HTML编码.
<script>或<object>标记,它就不会成功,我们会因此获得支持电话和电子邮件.我的问题是:什么是最好的选择,或者如果有另一种方法可以解决这个问题,它是什么?