标签: sanitize

如何在允许格式化的JavaScript编辑器中处理清理

像Medium这样的许多编辑都提供格式化.从我在DOM中看到的,它只是添加HTML.但是,如何在不丢失用户应用的格式的情况下清理此类输入?

例如,点击粗体添加:

<strong class="markup--strong markup--p-strong">text</strong>

但如果用户自己输入,则不想渲染.那有什么不同呢?如果您使用markdown进行样式但也不允许用户输入自己的markdown但只能通过浏览器访问它,那也会有所不同吗?

我能想到的一种方法是,逃避每个HTML特殊字符,但这看起来很奇怪.据我所知,只有在输出内容时才对内容进行消毒

html javascript security editor sanitize

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

在没有mysql_real_escape_string的情况下清理联系表单

我通常使用此函数来清理表单输入,然后将它们存储到我的数据库中:

//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
    $str = @trim($str);
    if(get_magic_quotes_gpc()) {
        $str = stripslashes($str);
    }
    return mysql_real_escape_string($str);
}
Run Code Online (Sandbox Code Playgroud)

直到今天,我还没有意识到mysql_real_escape_string需要数据库连接,因为我在将数据存储到数据库之前清理数据时只使用了它.

我尝试在联系表单上使用该功能,并得到"无法建立到服务器的链接"错误.我可以连接到数据库,但没有必要,因为我只是在通过联系表单发送到我的电子邮件之前尝试清理数据.

清理未存储在mysql数据库中的数据的最佳方法是什么?这些数据是否仍需要清理?

php forms security sanitize contact-form

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

Rails 4清理用户输入

我目前正在使用Ruby on Rails创建API.我只是想知道是否有内置的Rails方法或库/ gems来清理Json和SQL,或者Rails 4是否默认执行此操作?我最担心的是我有一个SQL语句,例如

User.where("users.first_name IS NOT NULL") 
Run Code Online (Sandbox Code Playgroud)

或类似的东西

Event.where(:location => params[:location]). 
Run Code Online (Sandbox Code Playgroud)

从本质上讲,我应该在SQL语法和传入的JSON请求中注意什么?

sql json ruby-on-rails sanitize

7
推荐指数
2
解决办法
7654
查看次数

清理HTML并关闭不完整的标签

sanitize()ApplicationHelper不关闭标签.

s = "<a href='http://example.com'>incomplete"
sanitize(s, :tags => ['a', 'p'])
Run Code Online (Sandbox Code Playgroud)

上面的代码片段保留了字符串.我怎么能强迫它附加一个关闭</a>或至少剥离<a>完全?

html ruby ruby-on-rails sanitize ruby-on-rails-3.1

6
推荐指数
2
解决办法
1987
查看次数

Codeigniter - 消毒输入的最佳实践

我想知道使用Codeigniter清理用户输入的最佳做法是什么.

我知道CI提供了form_validation,例如set_rules.

'set_rules'=>'trim|xss_clean|alpha_numeric|htmlspecialchars'
Run Code Online (Sandbox Code Playgroud)

"任何接受一个参数的本机PHP函数都可以用作规则,如htmlspecialchars,trim,MD5等."

我现在的问题是,

这足以保护我们免受xss,sql注入攻击等?

我可以申请哪些其他规则?

在绩效方面,我们将所有这些规则应用于所有投入是否代价高昂?

我理解MD5是一个哈希函数,但是如果你将MD5设置为规则的一部分会发生什么?

以上我也添加了javascript验证.我是否正确处理消毒输入和验证用户输入?请指教.

php validation codeigniter sanitize

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

清理字符串以防止相对URI路径

我创建了这个HTTP处理程序来更新本地SQL Express数据库中的信息.

我意识到用户可以使用相对URI路径"/../../file.zip"作为查询字符串,并且能够下载受限区域之外的文件.

该网站尚未生效,所以现在不是安全问题,但我真的想要阻止这样的事情.

我添加了一个简单的string.replace行,它从输入查询中删除任何"..".

我还有什么需要做的吗?

public void ProcessRequest(HttpContext context)
{
    string filesPath = "C:/Downloads/";
    string fileName = context.Request.QueryString["filename"];
    fileName = fileName.Replace("'", "''").Replace("..", "").Replace("/", "").Replace("\\", "");

    if (!string.IsNullOrEmpty(fileName) && File.Exists(filesPath + fileName))
    {
        context.Response.ContentType = "application/octet-stream";
        context.Response.AddHeader("Content-Disposition", string.Format("attachment; filename=\"{0}\"", fileName));
        context.Response.WriteFile(filesPath + fileName);
        //Do work to update SQL database here
    }
    else
    {
        context.Response.ContentType = "text/plain";
        context.Response.Write(filesPath + fileName + " Invalid filename");
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net security httphandler sanitize

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

对于Ruby应用程序,还有更好的Sanitize替代方案吗?

我喜欢Sanitize.这是一个惊人的实用程序.我唯一的问题就是它需要永远准备一个开发环境,因为它使用了Nokogiri,这对编译时来说很痛苦.是否有任何程序可以执行Sanitize所做的事情(如果没有其他事情,除了它的作用之外)还没有使用Nokogiri?这将有助于指数级!

ruby ruby-on-rails sanitize

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

消除PHP变量,我是否过度使用它?

我已经使用PHP一段时间了,我开始问自己,我是否养成了良好的习惯.

其中一个是我所相信的,包括过度使用PHP清理方法,例如,一个用户通过表单注册,我得到以下帖子变量:

$_POST['name'],$_POST['email']$_POST['captcha'].现在,我通常做的事情显然是清理我要放入MySQL的数据,但是在比较验证码时,我也会对它进行清理.

因此我相信我误解了PHP消毒,我很好奇,除了使用它在MySQL中放置东西之外,还有其他任何需要消毒数据的情况(注意我知道还需要消毒以防止XSS攻击).此外,我的习惯是消毒几乎所有来自用户输入的变量,一个糟糕的变量?

php mysql sanitize

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

绕过HTML导入的安全性

我正在从第三方导入HTML片段并将其嵌入到我的Angular 7应用程序之外的某个占位符中.有一个链接从javascript:片段内部开始,unsafe:将由Angular 作为前缀,这会破坏其功能.

Angular 的DOMSanitizer似乎只提供绕过HTML字符串安全性的方法.但是,在下面的方法中,我只是读取DOM节点并将其附加到不同的目的地.所以我需要一个DOM节点的解决方案.

根据我的研究,插入的节点在appendChild调用后可以直接运行,但是在Angular添加之后几毫秒unsafe:.

如何绕过DOM节点的安全性?

 private insertPart(componentImportLinkId: string, targetSelector: string): void {
    try {
      const linkElement: any = document.getElementById(componentImportLinkId);
      const componentContent = linkElement.import;
      const componentTemplate = componentContent.querySelector('template');
      const importedComponentTemplateClone = document.importNode(componentTemplate.content, true);
      const appendToElement = document.querySelector(targetSelector);
      appendToElement.appendChild(importedComponentTemplateClone);
    } catch (e) {
      console.error(`PortalLayoutComponent.insertPart: Can not insert '${targetSelector}'`, e);
    }
  }
Run Code Online (Sandbox Code Playgroud)

javascript security sanitization sanitize angular

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

ngStyle 内的函数调用得到清理

我在使用 Angular 8 进行样式清理时遇到问题。我多次使用 ngStyle,但这次我无法设置元素的边框td

我正在尝试根据字段设置边框样式。如果该字段有与我相关的内容,那么我会突出显示它,否则我不会突出显示。我不知道该字段可能值的数量,也不知道确切的值:它完全是动态的,我只知道我感兴趣的值。

我从.ts文件内的函数返回边框样式。以下是代码片段:

<ng-container matColumnDef="{{cam}}">
   <th mat-header-cell *matHeaderCellDef class="header"> {{cam}} </th>
   <td mat-cell *matCellDef="let piano" class="cellaMagazzino" [ngStyle]=" {'border':shouldHighlight(piano[cam])}">
      <div>
           <!--content-->
      </div>
   </td>
</ng-container>
Run Code Online (Sandbox Code Playgroud)

我的打字稿函数如下所示:

shouldHighlight(element){
if (this.listaCommittenti == undefined && this.listaNumOrdine == undefined) {
  let found = this.releventContentList.find(item => item.property == element.property)
  let result = found != undefined ? '3px solid ' + this.myVariable["color"] : ""
  return result
}
Run Code Online (Sandbox Code Playgroud)

我其他时候使用 ngStyle 调用函数,但在这种情况下我收到错误:

警告:清理不安全样式值 ​​3px 实心 rgb(241, 196, 15)(请参阅http://g.co/ng/security#xss)。

是否需要进行某种配置?有解决方法吗?

styles sanitize ng-style angular8

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