草庐IT

Python安全攻防之第二章Python语言基础

全部标签

c# - 为什么 C# 中的内置类型是语言关键字?

在C#中,int或string等标识符实际上是语言级别的关键字。这是什么原因?请注意,如果作者想要禁止使用这些名称的用户类型,那可能会造成语义错误,而不是语法错误。一些基于答案的澄清:它们是关键字,因为它使解析成为可能/更容易我不明白为什么,因为我正在开发一个解析器,并且Type.Rule=Identifier比Type.Rule=Identifier|简单得多。“诠释”|“字符串”|...。它们是关键字,因为它们是特殊的别名var和dynamic也是特殊的东西,但不是关键字(出于兼容性原因,尽管如此,它表明作为关键字不一定是特殊的)。在另一个示例中,将[Serializable]应用

c# - .NET Framework 4.x 中的插件系统安全性(无 CAS)

我想实现的是一个具有以下功能的插件系统:从我(开发人员)可能不信任但安装插件的最终用户信任的来源加载外部插件在特定范围内授予每个插件权限;例如一个插件可能有权从特定位置读取文件,而其他插件可能被允许连接到特定网站位置每个插件权限的特例:与另一个对象交互,很可能作为接口(interface)实例提供,而不访问其任何非公共(public)成员(甚至不使用偷偷摸摸的反射技术)在插件代码造成任何危害之前阻止最终用户不同意的操作,例如访问非公共(public)成员或在文件系统上操作在我的搜索过程中,我发现大多数涉及代码访问安全的SO解决方案,据我所知,这些解决方案在.NET4.x中已经过时。我还

c# - 需要对我解决此 Winforms 竞争条件的第二(和第三)意见

在博客等方面有上百个例子,说明如何实现一个记录前台GUI元素或为前台GUI元素提供状态的后台worker。它们中的大多数都包含一种方法来处理在生成工作线程和使用ShowDialog()创建前台对话框之间存在的竞争条件。但是,我想到一个简单的方法是强制在表单构造函数中创建句柄,这样线程将无法在创建句柄之前触发表单上的Invoke/BeginInvoke调用。考虑一个使用后台工作线程记录到前台的Logger类的简单示例。还假设我们不希望NLog或其他一些重量级框架来做一些如此简单和轻量级的事情。我的记录器窗口由前台线程使用ShowDialog()打开,但仅在后台“工作”线程启动之后。工作线

c# - 使用 MVC 4 的自定义页面访问安全性

我有一个系统,其中所有页面(View)和所有控件(按钮、链接、菜单项...)都应用了安全角色。所以我有一个管理界面,其中注册了所有页面和控件。每个用户都有一组单独的权限。所以,例如:我有一个ViewEditCar,有3个按钮:“新建”、“删除”和“返回”。因此用户X有权查看EditCar,并且只有“返回”按钮所以每个新View都必须注册,并与用户关联。没有角色,因为每个用户都是100%可配置的。所以,我有一个FilterAttribute:publicclassCustomAuthorize:FilterAttribute,IAuthorizationFilter{publicvoid

c# - 在线程之间共享局部变量是否安全(通过回调闭包)?

我想做类似下面的事情-基本上我正在调用一个异步操作,它将在另一个线程中调用回调,我想等待它完成“内联”。我担心的是,由于例如存储在寄存器中,跨线程共享的更改变量(栏和事件)可能不会同步。如果它们是成员变量,我可以将它们标记为volatile,但volatile不能用于在堆栈上创建的局部变量。我可以使用成员变量,但我认为它更干净,不会因为将其全部保留在本地而使我的类困惑。Barbar=null;ManualResetEventevent=newManualResetEvent(false);foo.AsyncOperation(newAction(()=>{//Thisdelegatew

c# - 仅在构造函数中使用私有(private) setter 是否会使对象线程安全?

我知道我可以像这样创建一个不可变的(即线程安全的)对象:classCantChangeThis{privatereadonlyintvalue;publicCantChangeThis(intvalue){this.value=value;}publicintValue{get{returnthis.value;}}}但是,我通常会“作弊”并这样做:classCantChangeThis{publicCantChangeThis(intvalue){this.Value=value;}publicintValue{get;privateset;}}然后我想知道,“为什么这行得通?”它真

c# - List<SelectListItem> 如何在 View 中安全地转换为 SelectList

我正在关注一个问题,其中OP有类似这样的东西[HttpGet]publicActionResultIndex(){varoptions=newList();options.Add(newSelectListItem{Text="Text1",Value="1"});options.Add(newSelectListItem{Text="Text2",Value="2"});options.Add(newSelectListItem{Text="Text3",Value="3"});ViewBag.Status=options;returnView();}然后在View中可以做这样的事情

c# - 使用 Interlocked 的线程安全 DateTime 更新。*

我可以使用Interlocked.*同步方法来更新DateTime变量吗?我希望在内存中保留最后一次触摸时间戳。多个http线程将更新最后一次触摸DateTime变量。我很欣赏DateTime变量是被替换而不是更新的值类型。我能想到的最好的方法是将时间戳记作为一个long中的总滴答数classx{long_lastHit;voidTouch(){Interlocked.Exchange(ref_lastHit,DateTime.Now.Ticks);}} 最佳答案 选项1:使用带有Interlocked和DateTime.ToBin

c# - 单数/复数词的本地化 - 语法数字的不同语言规则是什么?

我一直在开发一个.NET字符串格式化库来协助应用程序的本地化。它称为SmartFormat并在GitHub上开源.它试图解决的问题之一是GrammaticalNumbers.这也称为“单数和复数形式”或“条件格式”,这是它在英语中的样子的片段:varmessage="There{0:is|are}{0}{0:item|items}remaining";//YoucanusetheSmart.FormatmethodjustlikeusingString.Format:varoutput=Smart.Format(CultureInfo.CurrentUICulture,message,

网络安全比赛A模块任务书

前言这是作者这几个月来的第一次更新文章,问就是太忙了,最近要去参加国赛,在此重新回来写文章,也不知道能写多久,就当练习了。一.A模块基础设施设置/安全加固A-1.登录加固1.密码策略a.最小密码长度不少于8个字符,将密码长度最小值的属性配置界面截图。练习用的WindowsServer2008,系统左下角开始>管理工具>本地安全策略>账户策略>密码策略>密码最小长度,如下图👇。b.密码策略必须同时满足大小写字母、数字、特殊字符,将密码必须符合复杂性要求的属性配置界面截图和上面一样的地方,如下图👇。2.登录策略a.在用户登录系统时,应该有“Forauthorizedusersonly”提示信息,将