标签: sanitization

清理$ _GET参数以避免XSS和其他攻击

我有一个php的网站,包括()将内容嵌入到模板中.要加载的页面在get参数中给出,我将".php"添加到参数的末尾并包含该页面.我需要做一些安全检查以避免XSS或其他东西(不是mysql注入,因为我们没有数据库).我想出的是以下内容.

$page = $_GET['page'];

if(!strpos(strtolower($page), 'http') || !strpos($page, '/') ||
    !strpos($page, '\\') || !strpos($page, '..')) {
        //append ".php" to $page and include the page
Run Code Online (Sandbox Code Playgroud)

我还能做些什么来进一步消毒我的输入吗?

php sanitization

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

用于清理Mysql数据库输入的函数

我试图将一个通用功能放在一起,以清理对Mysql数据库的输入.到目前为止,这就是我所拥有的:

function sanitize($input){
    if(get_magic_quotes_qpc($input)){

        $input = trim($input); // get rid of white space left and right
        $input = htmlentities($input); // convert symbols to html entities
        return $input;
    } else {

        $input = htmlentities($input); // convert symbols to html entities
        $input = addslashes($input); // server doesn't add slashes, so we will add them to escape ',",\,NULL
        $input = mysql_real_escape_string($input); // escapes \x00, \n, \r, \, ', " and \x1a
        return $input;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我理解的定义get_magic_quotes_qpc().这是由php服务器设置为自动转义字符而不是需要使用addslashes().

我是否正确地使用过addslashes()并且 …

php mysql sanitization sql-injection

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

用于清理输入的.NET库?

是否有任何经过全面测试的.NET库来清理脚本/ sql注入等内容的输入?

.net security sanitization

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

Markdown和XSS

好吧,所以我在SO和其他地方一直在阅读关于降价的信息,用户输入和数据库之间的步骤通常给出为

  1. 将markdown转换为html
  2. 清理HTML(带白名单)
  3. 插入数据库

但对我来说,做以下事情更有意义:

  1. 清理markdown(删除所有标签 - 没有例外)
  2. 转换为HTML
  3. 插入数据库

我错过了什么吗?在我看来,这几乎是xss证明

xss markdown sanitization

11
推荐指数
2
解决办法
5765
查看次数

PHP Santizing /验证整数数组

我有以下数组,并想知道验证和santizing这个数组的最佳方法是什么,以确保允许整数

if(is_array($_POST['taxonomy'])) {
    $term_ids = array_map('esc_attr', $_POST['taxonomy']);
}
Run Code Online (Sandbox Code Playgroud)

打印时看起来像这样:

Array
(
    [0] => 13
    [1] => 12
)
Run Code Online (Sandbox Code Playgroud)

我知道esc_attr不是很安全所以想要更加强化一些东西.

任何帮助都会很棒.

干杯,

戴夫

php arrays validation integer sanitization

11
推荐指数
2
解决办法
3535
查看次数

在.NET中的动态SQL中清理表/列名称?(防止SQL注入攻击)

我正在生成一些动态SQL,并希望确保我的代码是安全的SQL注入.

为了争论,这里是一个如何生成它的最小例子:

var sql = string.Format("INSERT INTO {0} ({1}) VALUES (@value)",
    tableName, columnName);
Run Code Online (Sandbox Code Playgroud)

在上面,tableNamecolumnName,以及@value来自不受信任来源的任何内容.由于占位符的使用@value是安全的SQL注入攻击,可以忽略.(该命令通过SqlCommand执行.)

但是,tableName并且columnName 不能作为占位符绑定,因此容易受到注入攻击.由于这是一个"真正动态"的场景,因此没有白名单tableNamecolumnName可用.

问题是:

是否有一个标准的,内置的方式来检查和/或消毒tableNamecolumnName?(SqlConnection,或帮助程序类等)如果没有,在使用第三方库的情况下执行此任务的好方法是什么?

笔记:

  • 所有SQL标识符,包括模式,都应该被接受:例如[schema].[My Table].column,就像"安全"一样table1.
  • 可以清理标识符或检测无效标识符.(它不需要确保表/列在上下文中实际有效;生成的SQL可能无效,但必须是"安全的".)

更新:

刚发现这个,并认为它有点有趣:.NET4中有一个SqlFunctions.QuoteName函数(EF4?).好的,这对我来说真的没有帮助......

.net sql sanitization sqlconnection dynamic-sql

11
推荐指数
2
解决办法
4929
查看次数

如何清理LaTeX输入?

我想接受用户输入(有时这将是大段落)并生成LaTeX文档.我正在考虑一些简单的正则表达式来替换\with的\textbackslash所有实例{或者}\}或的所有实例\{.

我怀疑这是否足够.我还需要做什么?注意:如果有一个特殊的库,我正在使用python.

为了澄清,我不希望任何东西被解析为LaTeX语法:$a$应该替换为\$a\$.

python latex sanitization

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

CSS和JQuery:图像名称中的空格中断url()的代码

我有一个页面,当在鼠标悬停在缩略图上时,它应该显示更大版本的图像.

我有一个带有ID的'div',JQuery代码如下:

$(document).ready(function(){

  $('img').hover(function() {

    var src = $("#im" + this.id).attr("src");
    $('#viewlarge').css('backgroundImage','url(' + src +')'); 
    return false;
  });

});
Run Code Online (Sandbox Code Playgroud)

我使用的图像是由Ruby脚本生成的,该脚本"生成"具有相似但不同id的图像.但是,有时会上传内部有"空格"的照片.我的开发人员工具告诉我背景图像设置不正确,但图像路径是正确的,浏览器在查找图像时没有问题.

我的问题是,我可以以某种方式消毒url'src',所以空格不会有问题吗?我知道这个服务器端,但我想知道如何使用JQuery/JS.

谢谢!

javascript css jquery sanitization

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

在RegExp构建之前清理正则表达式字符串?

我想使用字符串来执行全局正则表达式,但它可能包含正则表达式字符.在使用它构建正则表达式之前,在字符串中转义所有正则表达式字符的最佳方法是什么?

基本上我可能有这样的事情;

var test = 'test.';
var regex = new RegExp(test, 'ig');
Run Code Online (Sandbox Code Playgroud)

我需要'测试'.成为'测试\'.所以它不会以意想不到的方式表现.

javascript regex sanitization

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

如何使用OWASP HTML Sanitizer允许特定字符?

我正在使用OWASP Html Sanitizer来防止对我的网络应用程序进行XSS攻击.对于许多应该是纯文本的字段,Sanitizer的效果超出了我的预期.

例如:

HtmlPolicyBuilder htmlPolicyBuilder = new HtmlPolicyBuilder();
stripAllTagsPolicy = htmlPolicyBuilder.toFactory();
stripAllTagsPolicy.sanitize('a+b'); // return a+b
stripAllTagsPolicy.sanitize('foo@example.com'); // return foo@example.com
Run Code Online (Sandbox Code Playgroud)

当我有字段,如电子邮件地址有+它如foo+bar@gmail.com我结束了在数据库中的错误数据.所以有两个问题:

  1. + - @他们真的需要编码这些危险的角色吗?
  2. 如何配置OWASP html清理程序以允许特定字符,如+ - @?

问题2对我来说是更重要的答案.

java security xss sanitization owasp

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