我们如何在信号中发送html标签?

时间:2016-10-04 10:06:18

标签: html push-notification message onesignal

我需要使用基于vb.net的webservice中的信号向客户发送消息。这些消息是在html标签之间发送的,例如:<html><body>message<a href="...">link</a>text,但每当我尝试通过一个信号发送它时,我都会收到此错误:

System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (pushMessage=&quot;message&lt;a&gt;link&lt;/a&gt;text&quot;).
   at System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection)
   at System.Web.HttpRequest.ValidateHttpValueCollection(HttpValueCollection collection, RequestValidationSource requestCollection)
   at System.Web.HttpRequest.get_Form()
   at System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request)
   at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
   at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

有人可以建议通过信号发送html数据的解决方案吗?

1 个答案:

答案 0 :(得分:1)

此错误似乎发生在您的服务器端,而不是OneSignal。

以下是Microsoft对此错误消息的指南:https://msdn.microsoft.com/en-us/library/system.web.httprequestvalidationexception(v=vs.110).aspx

上面链接中的备注部分解释了如何解决此问题,引用:

  

在Web中,约束和验证用户输入是必不可少的   应用程序,以防止依赖恶意输入的黑客攻击   字符串。跨站点脚本攻击是此类攻击的一个示例。   可以在请求中传递其他类型的恶意或不需要的数据   通过各种形式的投入。通过限制数据的种类   在应用程序中以低级别传递,可以防止不良后果   事件,即使使用你的代码的程序员没有把   适当的验证技术到位。

     

请求验证检测到   潜在的恶意客户端输入并抛出此异常以中止   处理请求。请求中止可以指示尝试   危及应用程序的安全性,例如跨站点   脚本攻击。强烈建议您申请   明确检查有关请求中止的所有输入。但是,你可以   通过在中设置validateRequest属性来禁用请求验证   该指令为false,如以下示例所示:<%@ Page validateRequest="false" %>禁用您的请求验证   应用程序,您必须修改或创建一个Web.config文件   应用程序并设置pages部分的validateRequest属性   为false,如下例所示:

<configuration>   
  <system.web> 
    <pages validateRequest="false" />    
  </system.web>  
</configuration>
  

禁用所有应用程序的请求验证   在您的服务器上,您可以对Machine.config进行此修改   文件。