标签: sanitize

将字符串转换为有效的文件名?

我有一个字符串,我想用作文件名,所以我想删除文件名中不允许使用Python的所有字符.

我宁愿比其他方面更严格,所以让我说我只想保留字母,数字和一小部分其他字符"_-.() ".什么是最优雅的解决方案?

文件名需要在多个操作系统(Windows,Linux和Mac OS)上有效 - 它是我的库中的MP3文件,歌曲标题为文件名,并在3台机器之间共享和备份.

python filenames sanitize slug

269
推荐指数
19
解决办法
15万
查看次数

抓住粘贴输入

我正在寻找一种方法来清理我粘贴到浏览器中的输入,这可能与jQuery有关吗?

到目前为止,我已经设法做到了这一点:

$(this).live(pasteEventName, function(e) {
 // this is where i would like to sanitize my input
 return false;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,由于这个"次要"问题,我的发展已经开始戛然而止.如果有人能指出我正确的方向,我真的会让我成为一个快乐的露营者.

jquery paste sanitize

202
推荐指数
11
解决办法
24万
查看次数

C#清理文件名

我最近一直在将各种位置的MP3转移到存储库中.我一直使用ID3标签构建新的文件名(谢谢,TagLib-Sharp!),我注意到我得到了一个System.NotSupportedException:

"不支持给定路径的格式."

这是通过产生任一File.Copy()Directory.CreateDirectory().

没过多久就意识到我的文件名需要消毒.所以我做了一件显而易见的事:

public static string SanitizePath_(string path, char replaceChar)
{
    string dir = Path.GetDirectoryName(path);
    foreach (char c in Path.GetInvalidPathChars())
        dir = dir.Replace(c, replaceChar);

    string name = Path.GetFileName(path);
    foreach (char c in Path.GetInvalidFileNameChars())
        name = name.Replace(c, replaceChar);

    return dir + name;
}
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,我继续得到例外.原来,':'不在集合中Path.GetInvalidPathChars(),因为它在路径根中有效.我认为这是有道理的 - 但这必须是一个非常普遍的问题.有没有人有一些消毒路径的短代码?最彻底的我已经想到了这一点,但感觉它可能是矫枉过正.

    // replaces invalid characters with replaceChar
    public static string SanitizePath(string path, char replaceChar)
    {
        // construct a list of characters that can't show up in filenames. …
Run Code Online (Sandbox Code Playgroud)

c# validation invalid-characters path sanitize

159
推荐指数
8
解决办法
8万
查看次数

这些Unicode组合字符有什么用处,我们如何过滤它们?

กิิิิิิิิิิิิิิิิิิิิก้้้้้้้้้้้้้้้้้้้้ก็็็็็็็็็็็็็็็็็็็็ก็็็็็็็็็็็็็็็็็็็็กิิิิิิิิิิิิิิิิิิิิก้้้้้้้้้้้้้้้้้้้้ก็็็็็็็็็็็็็็็็็็็็กิิิิิิิิิิิิิิิิิิิิก้้้้้้้้้้้้้้้้้้้้กิิิิิิิิิิิิิิิิิิิิก้้้้้้้้้้้้้้้้้้้้ก็็็็็็็็็็็็็็็็็็็็ก็็็็็็็็็็็็็็็็็็็็กิิิิิิิิิิิิิิิิิิิิก้้้้้้้้้้้้้้้้้้้้ก็็็็็็็็็็็็ ็็็็็็็กิิิิิิิิิิิิิิิิิิิิก้้้้้้้้้้้้้้้้้้้้

这些最近出现在Facebook评论部分.

我们怎样才能消毒这个?

unicode sanitize combining-marks zalgo

89
推荐指数
4
解决办法
5万
查看次数

如何在邮寄之前清理PHP中的用户输入?

我有一个简单的PHP邮件程序脚本,它从通过POST提交的表单中获取值并将它们发送给我:

<?php
$to = "me@example.com";

$name = $_POST['name'];
$message = $_POST['message'];
$email = $_POST['email'];

$body  =  "Person $name submitted a message: $message";
$subject = "A message has been submitted";

$headers = 'From: ' . $email;

mail($to, $subject, $body, $headers);

header("Location: http://example.com/thanks");
?>
Run Code Online (Sandbox Code Playgroud)

我该如何消毒输入?

php security email sanitize

47
推荐指数
3
解决办法
3万
查看次数

安全沙箱并执行用户提交的JavaScript?

我希望能够让用户提交任意JavaScript代码,然后将其发送到Node.JS服务器并安全执行,然后将输出发送回多个客户端(作为JSON).eval我想到了这个功能,但我知道这有多个安全问题(用户提交的代码可以访问Node的File API等).我见过一些项目,如Microsoft Web Sandbox和Google Caja,它们允许执行清理标记和脚本(用于在网站上嵌入第三方广告),但似乎这些是客户端工具,我不确定它们是否可以在Node中安全使用.

有没有一种标准的方法来沙盒并在Node中执行不受信任的JavaScript,从而获得输出.尝试做这个服务器端是错误的吗?

编辑:用户能够利用JavaScript的全部功能并不重要,事实上,最好能够选择将哪些API提供给用户代码.

编辑:我将继续使用我发现的内容进行更新.这个Sandcastle模块(bcoe/sandcastle)似乎旨在实现我的想法.不确定它有多安全,但由于我不是太重要,我想如果尝试的话.如果我能成功地做到这一点,我会添加自己的答案.

javascript eval sandbox sanitize node.js

42
推荐指数
4
解决办法
1万
查看次数

如何在Rails中清理sql片段

我必须清理sql查询的一部分.我可以这样做:

class << ActiveRecord::Base
  public :sanitize_sql
end

str = ActiveRecord::Base.sanitize_sql(["AND column1 = ?", "two's"], '')
Run Code Online (Sandbox Code Playgroud)

但它不安全,因为我公开了受保护的方法.有什么更好的方法呢?

sql ruby-on-rails sanitize

36
推荐指数
5
解决办法
3万
查看次数

HTML Agility Pack strip标签不在白名单中

我正在尝试创建一个删除不在白名单中的html标签和属性的函数.我有以下HTML:

<b>first text </b>
<b>second text here
       <a>some text here</a>
 <a>some text here</a>

 </b>
<a>some twxt here</a>
Run Code Online (Sandbox Code Playgroud)

我正在使用HTML敏捷包,到目前为止我的代码是:

static List<string> WhiteNodeList = new List<string> { "b" };
static List<string> WhiteAttrList = new List<string> { };
static HtmlNode htmlNode;
public static void RemoveNotInWhiteList(out string _output, HtmlNode pNode, List<string> pWhiteList, List<string> attrWhiteList)
{

 // remove all attributes not on white list
 foreach (var item in pNode.ChildNodes)
 {
  item.Attributes.Where(u => attrWhiteList.Contains(u.Name) == false).ToList().ForEach(u => RemoveAttribute(u));

 }

 // remove all html and their innerText …
Run Code Online (Sandbox Code Playgroud)

c# tags sanitize html-parsing html-agility-pack

30
推荐指数
2
解决办法
2万
查看次数

出于安全目的,在bash中清理用户输入

如何在bash脚本中清理用户输入,以便我可以将其作为参数传递给另一个shell程序?我想阻止以下情况:

INPUT="filename;rm -rf /"
ls $INPUT
Run Code Online (Sandbox Code Playgroud)

我认为它应该足以用双引号括起用户输入,如下所示:

ls "$INPUT"
Run Code Online (Sandbox Code Playgroud)

但如果有双引号$INPUT怎么办?

或者bash已经处理过这个问题了吗?

bash input sanitize

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

清理Angular2中的输入

我试图从我的数据库中获取第三方(可能不安全)的html内容并将其插入到我的html文档中.

我如何安全地做到这一点(针对XSS的保护)?

Angular1.x中曾经有过$sce消毒输入,我如何在Angular2中做到这一点?据我了解,Angular2默认自动清理它,这是正确的吗?

这样的东西不起作用:

<div class="foo">
    {{someBoundValueWithSafeHTML}} // I want HTML from db here
</div>
Run Code Online (Sandbox Code Playgroud)

sanitize typescript angular

25
推荐指数
1
解决办法
3万
查看次数