问题标签 [auditing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - mysql(几乎)完成审计
我正在寻找一种为我的表制作简单事件日志的方法。我有几个表可以由不同的用户更改,我想跟踪:
类似的东西会很棒:
所以我读到触发器可能是答案,但据我所知,我似乎需要为我想要跟踪的每一列都有一个完整的新表。触发器对于这项工作也不是完美的,因为我想记录谁进行了更改,而从我读到的内容来看这是不可能的。
我想为 CRUD(插入、更新、删除)制作 3 个不同的功能,并且在进行查询之前,检查更改的内容并制作日志然后运行查询。但从这里开始,它似乎非常缓慢和复杂。
还有其他更好的方法吗?
谢谢
好的,我再次检查了触发器,它不是我想要的,所以我编写了简单的函数,如果新值不同,它将检查你想要记录的每个查询,如果是,它会记录它。
主要问题是,我没有测量它,但它显然更慢。
首先,您需要创建一个新的 mysql 表,如下所示:
- id(a_i,主要)
- 创建日期(日期时间)
- user_id (int)
- 表名(小文本)
- 记录 ID(整数)
- 单元格名称(小文本)
- action_type(小文本)
- 旧值(文本)
- 新值(文本)
之后,编写函数。我还没有写“插入”和“删除”部分,但我认为我应该更容易。
和 :
要调用函数,您需要首先对参数进行排序以查找特定行,并将新值放入数组中,然后调用 log_query 函数:
这实际上将检查“名称”是否已更改以及描述是否已更改。对于每一个,如果它发生变化,它会将新记录插入到“审计”表中,指定确切的变化。记录更改后,它将运行更新查询。在我们的示例中:
希望这会有所帮助。它现在进行了测试并且可以正常工作。如果有更新 - 我会在这里发布。
c# - 编写前后值的审计记录
我目前在 ASP.NET/C# 中使用 SqlDataSource 让用户在表/网格视图中插入、删除和更新条目。每个事件都需要写入审计表。
我已经轻松实现了插入和删除 - 插入时,审核的主要信息只是插入查询的参数值(e.Command.Parameters[0].Value.ToString() 等),删除几乎相同(只是在删除查询中获取 ID)。
但是随着更新,我需要记录哪些字段已更改以及它们的旧值。我该怎么做?例如,这是插入的代码:
}
如何才能做到这一点?
c# - 更新或插入时返回gridview的PK(ASP.NET,C#)
我需要对要审核的表的所有更改(例如插入、更新和删除)进行审核,并且我正在使用简单的 SQLDataSource 和 GridView 以及自动生成的 INSERT/UPDATE/DELETE 语句。问题是,当更新一行时,我想获取 ID(主键)并将其放入审核表中 - 但是因为 UPDATE 查询的唯一参数是实际数据而不是主键,所以我不知道如何访问此信息。这是我的更新查询:
这是审计的代码隐藏:
hibernate - 为教义休眠 Envers?
Doctrine 1.x 和 2 都以单独的审计表的形式提供了某种版本的支持,该审计表跟踪随时间的变化。然而,这些版本似乎是为每行使用(即它们都维护自己的版本号)而不是在数据库范围内使用的,例如在 Hibernate Envers 中,它为每一行提供一个唯一的修订号。
Doctrine 是否真的为这种行为提供了支持?我在网上找不到任何建议这样做的东西。
python - 可利用的 Python 函数
这个问题类似于Exploitable PHP Functions。
受污染的数据来自用户,或者更具体地说来自攻击者。当受污染的变量到达接收器函数时,您就有了漏洞。例如,执行 sql 查询的函数是接收器,而 GET/POST 变量是污染源。
Python 中的所有 sink 函数是什么?我正在寻找引入漏洞或软件弱点的功能。我对远程代码执行漏洞特别感兴趣。是否存在包含危险功能的整个类/模块?你有任何有趣的 Python 漏洞的例子吗?
oracle - “按会话审核创建会话”与“按访问审核创建会话”?
当我通过以下方式为创建会话启用审核时:
然后我查询以下内容:
结果是:
但是,当我通过以下方式为创建会话启用审核时:
然后我查询以下内容:
结果是一样的:
为什么?你有什么主意吗?
c# - C# 反射和审计类型
我试图弄清楚是否可以通过反射(或其他方式)“审核”某些代码以强制执行验证要求——例如检查代码是否创建任何线程(System.Threading.Thread)或使用其他 BCL。假设代码已经编译成 dll。谢谢!
jakarta-ee - 在 Java EE 项目中应该和不应该审计什么
我在项目审计方面需要建议。
目前我正在开发的项目有许多“用户”可以执行的操作,例如:
- 更改自己的密码
- 添加、删除权限
- 添加、删除角色
- 上传文件
- 好多其它的..
用户可以访问的所有这些操作都经过审核,但是我不知道是否通常例如审核以下内容:
密码策略规定用户密码必须至少包含 1 个符号和 1 个数字。某些用户在特定时间试图更改他的密码而不关心策略,他当然会收到一条消息,指出密码策略不受尊重,但这应该被审计吗?我只是想从以前审计过或知道此事的人那里得到意见。
另一种可能的情况是,当用户尝试删除不存在的内容时,例如,拥有一个空的权限列表并尝试删除一个不存在的权限,用户将再次收到一条消息说选择在至少有一个删除权限,但是否应该审核此操作?
欢迎任何反馈,我第一次审核项目,谢谢:)
sql-server - SQL Server 审计日志文件中的“语句”属性
谁能告诉我如何读取 sql server 审计日志文件的语句属性中的参数值。例如:我从 id='someID' 的 some_table 中触发了一个查询选择名称
在日志文件中,我将语句属性中的条目作为 Select from [some_table] where [id]=@1
那么有人可以帮我获得这个@1的价值吗???
c# - .NET 将类型转换为子类型
我们在我们的项目中使用 NHibernate,并且我们正在挂钩预更新/插入/删除事件以进行一些审核。
我们希望将每个实体审计到其自己的审计表,该表与源表具有相同的架构(可能使用“更新”、“插入”等审计操作)。
我已经查看了会自动生成触发器的 unHAdins,但是当您对我们无法接受的主表进行更改时,它似乎会删除并重新创建审计表,我们还需要一些自定义逻辑,以便我们只会审计在某些情况下记录它的实际属性(我们关心的属性是我们所有对象的基类的一部分)。
为此,我想我可以扩展我们现有的域类,然后为这些扩展类定义一个新的 Nhibernate 映射。
例如:
我们有一个类仪器
我已经定义了一个接口 Iauditable 以便我们可以找出哪个类是任何 Iauditable 对象的审计类。
审计类如下
它没有额外的功能,它基本上是一种让我们将其映射到 NHibernate 中的审计表的 hack。
所以这似乎可以工作,但问题实际上是在尝试处理 NHibernate 事件时出现的
e.Entity 作为对象提供给我。
以上是我想工作的代码,基本上我知道该对象是应该审计的对象,它是我的基础对象之一,所以我想将其转换为审计对象的子类型并将其传递给 nhibernate保存。
不幸的是,您似乎无法将其转换为必须是实际类型的变量,无论如何我都可以将对象转换或转换为其“审核”类型,而无需为每个审核放置构造函数/转换器采用其基本类型并保存属性的类型?