草庐IT

消息安全

全部标签

c# - 从客户端检测到异常 : A potentially dangerous Request. 表单值时显示自定义错误消息

我在我的Web应用程序中使用ASP.NET的登录控件。当发生此异常时,我想在标签上显示一种有趣的错误类型System.Web.HttpRequestValidationException:ApotentiallydangerousRequest.Formvaluewasdetectedfromtheclient当用户尝试通过在登录控件的用户名文本字段中输入它们来进行sql注入(inject)攻击或某些HTML或SCRIPT操作时,就会发生这种情况。我尝试了很多事情,例如将身份验证登录包含在trycatchblock中并捕获System.Web.HttpRequestValidation

c# - 为什么结构的 sizeof 是不安全的

MSDN明确指出Forallothertypes,includingstructs,thesizeofoperatorcanonlybeusedinunsafecodeblocks.C#LanguageSpecification更精确:成员打包到结构中的顺序是未指定的。出于对齐目的,开头可能有未命名的填充结构的一部分、结构内的和结构的末尾。用作填充的位的内容是不确定的。当应用于具有结构类型的操作数时,结果是该类型变量中的字节总数,包括任何填充。但是CLR将如何处理以下结构:[StructLayout(LayoutKind.Explicit,Size=1,Pack=1)]publicst

c# - Asp.Net Core 中的 IP 安全

我正在尝试通过IP地址限制站点。在以前的MVC版本中,我会在web.config中添加如下内容:但是将其添加到AspNetCore项目会导致应用程序启动失败并出现错误UnabletostartprocessThewebserverrequestfailedwithstatuscode500,internalservererror显然我破坏了配置,因为它不再在这里处理。该错误会生成一个HttpFailure日志,如下所示:现在处理这个问题的最佳方法是什么,内置的还是其他的 最佳答案 DamianBod制作了一个blogpost演示如何

c# - 异常消息应该存储在哪里

由于我不能以Microsoft作为最佳实践的示例,因为他们的异常消息出于必要而存储在资源文件中,我不得不问应该将异常消息存储在哪里。我想这可能是我想到的常见地点之一默认资源文件局部常量类常量全局异常消息类作为字符串文字内联 最佳答案 我可能会因此而被Gunicorn(好吧,被否决),但为什么不“在你创建异常的地方”?thrownewInvalidDataException("Awurblecan'tfollowaflurble");除非您要国际化异常消息(whichIsuggestyoudon't),否则您是否特别需要它们是常量等?

c# - 向所有可用网卡广播 UDP 消息

我需要向特定IP和端口发送UDP消息。由于有3张网卡,10.1.x.x10.2.x.x10.4.x.x当我发送一条UDP消息时,我只在一个网络适配器中接收消息...其余的ip没有接收到。我想在发送消息时检查网络适配器。我该怎么做?目前我使用的是:IPEndPointlocalEndPoint=newIPEndPoint(IPAddress.Parse(LocalIP),0);IPEndPointtargetEndPoint=newIPEndPoint(TargetIP,iTargetPort);UdpClientsendUdpClient=newUdpClient(localEndPo

c# - C# 数组中的线程安全

是否有2个不同的线程:从C#数组读取(例如从第一个位置),另一个写入同一个C#数组但写入不同的位置(例如最后一个位置)线程安全吗?(我的意思是这里没有锁定读取或写入) 最佳答案 这个特殊情况是安全的,是的。读取和写入数组的不同部分不会干扰其他操作。但是,读取和写入同一位置可能会给您带来问题,具体取决于元素的类型和元素的大小。 关于c#-C#数组中的线程安全,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

c# - 在 BotFramework 上启动从机器人到用户的消息

我有一个基于BotFramework3.5构建并作为WebApp托管在Azure上的机器人。在实现机器人需要响应用户输入的场景时,我没有遇到任何问题。然而,有必要教他按某个时间表开始对话。为了达到目标,我创建了一个WebJob,它基本上是一个简单的控制台应用程序。这是用于启动从机器人到用户的消息的代码:varbotAccount=newChannelAccount(id:from);varuserAccount=newChannelAccount(id:to);varconversation=newConversationAccount(false,conversationId);va

c# - Elmah 将消息添加到通过调用 Raise(e) 记录的错误中

我对如何向使用ELMAH以编程方式记录的错误添加消息感到有点困惑。例如:publicActionResultDoSomething(intid){try{...}catch(Exceptione){//Iwanttoincludethe'id'paramvaluehere,andmaybesome//otherstuff,buthow?ErrorSignal.FromCurrentContext().Raise(e);}}似乎Elmah所能做的就是记录原始异常,我怎样才能记录我自己的调试信息? 最佳答案 您可以抛出一个新的异常,将原

c# - 静态变量的线程安全初始化

我一直在使用这种模式来初始化我的类中的静态数据。它对我来说看起来是线程安全的,但我知道线程问题有多么微妙。这是代码:publicclassMyClass//badcode,donotuse{staticstring_myResource="";staticvolatilebool_init=false;publicMyClass(){if(_init==true)return;lock(_myResource){if(_init==true)return;Thread.Sleep(3000);//someoperationthattakesalongtime_myResource="H

c# - 使用 Windows Azure DiagnosticsMonitor 时,log4net traceappender 仅记录级别为 'verbose' 的消息

我有一个azureworker角色,我已将其配置为使用写入WindowsAzure.Diagnostics的log4netTraceAppender。这是通过在worker角色的RoleEntryPoint中进行以下调用来完成的。usingSystem;usingMicrosoft.WindowsAzure.Diagnostics;usinglog4net.Config;namespaceXXX{publicclassWorkerRole:RoleEntryPoint{publicoverrideboolOnStart(){varconfig=DiagnosticMonitor.Get