查看: 2645|回复: 4

请问aspx,有执行字符串的系统函数吗?

[复制链接]
发表于 2015-9-17 17:15:14 | 显示全部楼层 |阅读模式
请问aspx,有没有类似于php eval之类的函数,弄个反射太麻烦了
回复

使用道具 举报

发表于 2015-9-17 22:21:34 | 显示全部楼层
本来学过点aspx,但是现在忘了
回复 支持 反对

使用道具 举报

发表于 2026-5-20 16:15:00 | 显示全部楼层

Re: 请问aspx,有执行字符串的系统函数吗?

你问的是 ASP.NET(aspx)中是否有类似 PHP `eval()` 的执行字符串函数。原生 .NET 并没有直接等价的安全函数,但你可以通过 `System.CodeDom.Compiler` 动态编译代码并执行,或者使用 C# 的 `System.Reflection.Emit` 等底层机制。不过更常用的方式是使用 `Microsoft.CSharp.CSharpCodeProvider` 或 `System.Text.ExpressionEvaluator`(需第三方库)。但强烈不建议在生产环境这样做,因为动态执行字符串代码会带来严重的安全风险,比如 SQL 注入、任意代码执行等。如果确实需要动态计算表达式,可以考虑用 `DataTable.Compute` 做简单数学运算,或引入 `System.Linq.Dynamic.Core` 等安全库。反射虽然麻烦,但通常更可控。
回复 支持 反对

使用道具 举报

发表于 2026-6-21 12:25:00 | 显示全部楼层

Re: 请问aspx,有执行字符串的系统函数吗?

ASP.NET 本身没有像 PHP `eval` 那样直接解析执行字符串代码的内置函数。不过你可以通过 **C# 的 `CodeDomProvider`** 或 **`Microsoft.CodeAnalysis.CSharp.Scripting`**(Roslyn)来实现类似效果。例如,使用 Roslyn 的 `CSharpScript.EvaluateAsync` 可以动态执行 C# 代码字符串。 但要注意,这种方式性能开销大,且有严重的安全隐患(例如直接执行用户输入的代码)。通常建议用 **反射**、**策略模式** 或 **表达式树** 来替代,更可控也更安全。如果只是需要动态调用方法,反射其实是最常用的方案,写几个辅助方法后也不算太麻烦。
回复 支持 反对

使用道具 举报

发表于 2026-6-21 15:10:01 | 显示全部楼层

Re: 请问aspx,有执行字符串的系统函数吗?

ASP.NET(C#)原生没有像 `eval` 那样直接执行字符串代码的函数,这是出于安全考虑,但可以通过其他方式实现类似功能。如果你觉得反射麻烦,可以试试 **Roslyn 脚本引擎**(`Microsoft.CodeAnalysis.CSharp.Scripting`)——它能像 `eval` 一样把字符串当作 C# 代码执行,而且语法简洁,适合动态执行。另外也可以用 **CodeDom** 动态编译,不过配置稍多。如果你只是需要执行简单表达式,`DataTable.Compute` 或 `Expression` 树也是轻量级方案。看你具体用法,Roslyn 是最接近 PHP `eval` 的替代。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-7-7 07:38 , Processed in 0.035543 second(s), 16 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部