标签: html-sanitizing

htmlspecialchars导致文本消失

我遇到了一个特定的字符串(它不是完全可打印的,但你可以在下面看到)导致htmlspecialchars()返回一个零长度的字符串.有什么方法可以修复吗?

$Stmnt = 'SELECT subject_name FROM bans WHERE id = 2321';
$Fetch = $Conn->query($Stmnt);
if(!$Fetch)
    die('Could not query DB');
while($Row = $Fetch->fetch_array(MYSQLI_ASSOC))
{
    $RawName = $Row['subject_name'];
    $RawLen = strlen($RawName);
    echo('RAW NAME: ['.$RawName.']'.', LENGTH: ['.$RawLen.']'.'<br />');
    for($i = 0; $i < $RawLen; $i++)
        echo('CHAR '.$i.' = ['.$RawName[$i].'] (ORD: '.ord($RawName[$i]).')<br />');

    $CleanName = htmlspecialchars($RawName, ENT_QUOTES, 'UTF-8');
    $CleanLen = strlen($CleanName);
    echo('CLEAN NAME: ['.$CleanName.']'.', LENGTH: ['.$CleanLen.']'.'<br />');
    for($i = 0; $i < $CleanLen; $i++)
        echo('CHAR '.$i.' = ['.$CleanName[$i].'] (ORD: '.ord($CleanName[$i]).')<br />');
}
$Fetch->close();
echo('DONE'); …
Run Code Online (Sandbox Code Playgroud)

php html-sanitizing htmlspecialchars

2
推荐指数
1
解决办法
1466
查看次数

Ruby Regex捕获两个字符串之间的所有内容(包括)

我正在尝试清理一些HTML并删除一个标签(我真的想避免使用nokogiri等).所以我有以下字符串出现我想要摆脱:

<div class="the_class>Some junk here that's different every time</div>
Run Code Online (Sandbox Code Playgroud)

这在我的字符串中只显示一次,我想找到一种方法将其删除.我已经尝试用正则表达式捕获它,但我找不到一个有效的.

我已经尝试过/<div class="the_class">(.*)<\/div>/m,但是它也可以匹配并包含</div>文档中的任何其他标签,这是我不想要的.

关于如何处理这个的任何想法?

ruby regex string html-sanitizing

2
推荐指数
1
解决办法
3827
查看次数

OWASP HTML Sanitizer允许在HTML中使用冒号

如何:签署已清理的HTML?我用它来生成java邮件时清理HTML代码.此代码具有内联图像内容ID <img src=\"cid:image\" height=\"70\" width=\"70\" />.在src清理时,该属性不包含在已清理的html中.

    PolicyFactory IMAGES = new HtmlPolicyBuilder().allowUrlProtocols("http", "https")
            .allowElements("img")
            .allowAttributes("src").matching(Pattern.compile("^cid[:][\\w]+$"))
            .onElements("img")
            .allowAttributes("border", "height", "width").onElements("img")
            .toFactory();

    String html = "<img src=\"cid:image\"  height=\"70\" width=\"70\" />";
    final String sanitized = IMAGES.sanitize(html);

    System.out.println(sanitized);
Run Code Online (Sandbox Code Playgroud)

上面代码的输出是:

<img height="70" width="70" />
Run Code Online (Sandbox Code Playgroud)

xss jakarta-mail html-sanitizing owasp

2
推荐指数
1
解决办法
1277
查看次数

删除AppEngine Python Env中的HTML标记(相当于Ruby的Sanitize)

我正在寻找一个python模块,它将帮助我摆脱HTML标签,但保留文本值.之前我尝试过BeautifulSoup,我无法弄清楚如何完成这个简单的任务.我尝试搜索可以执行此操作的Python模块,但它们似乎都依赖于其他在AppEngine上运行不正常的库.

下面是Ruby的sanitize库中的示例代码,这就是我在Python中所追求的:

require 'rubygems'
require 'sanitize'

html = '<b><a href="http://foo.com/">foo</a></b><img src="http://foo.com/bar.jpg" />'

Sanitize.clean(html) # => 'foo'
Run Code Online (Sandbox Code Playgroud)

谢谢你的建议.

-e

python google-app-engine html-sanitizing

1
推荐指数
1
解决办法
1440
查看次数

特殊字符打破mysql插入

我有一个像这样的mysql语句:

mysql_query("INSERT INTO movies (comments, description, synopsis)
VALUES ('$_POST["comments"]', '$_POST["desc"]',$_POST["synopsis"])");
Run Code Online (Sandbox Code Playgroud)

你可以看到非常简单明了.问题是当我在表单中输入特殊字符时,它不会将数据插入到我的表中(使用phpmyadmin直接检查它是否已插入).例如,如果我在评论textarea这个值:"这是一个评论",如果我改为:"你的名字是什么?:John doe是我的名字"它会中断它.我知道它因为mysql使用了字符......我应该怎么做的任何建议?

php mysql html-sanitizing input-sanitization

0
推荐指数
1
解决办法
5487
查看次数