问题标签 [defensive-programming]

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.

0 投票
2 回答
51 浏览

django - 默认安全的 django ORM 层---如何?

我正在经营一家 Django 商店,我们为每个客户提供一个与所有其他客户的图完全分开的对象图。数据是中等敏感的,所以我不希望其中任何一个从一个客户端泄漏到另一个客户端,也不希望一个客户端删除或更改另一个客户端的数据。

我想构建我的代码,以便我默认编写符合安全要求的代码(不需要保证),但是当我知道我需要时让我覆盖它们。

我主要担心的是Twig.objects.get(...),我忘记添加client=request.client,同样对于Leaf.objects.get我必须检查的地方twig__client=request.client。这很快变得容易出错和复杂。

有什么好方法可以解决我自己的健忘问题?我如何使这成为我不必考虑的事情?

0 投票
5 回答
14850 浏览

java - 复制构造函数和防御性复制

什么是复制构造函数

有人可以分享一个有助于理解防御性复制原则的小例子吗?

0 投票
2 回答
419 浏览

c - 菜单上的防御性编程。我应该有什么类型的输入?

我试图让防御性编程以整数形式输入,但如果我输入一个字符,程序将进入无限循环。然后我切换到将输入作为字符,但它会循环两次。一次用于错误字符,一次用于行尾击键。

有没有办法让循环,只有一次?

代码:

0 投票
4 回答
75 浏览

java - 携带 RuntimeExceptions 的抛出声明

假设我有一个方法或构造函数,它在内部使用另一个方法或构造函数,可以抛出 RuntimeException。

在这种情况下,如果未满足必要的先决条件,则会引发 RuntimeException。

问:包装方法/构造函数是否应该声明相同的异常,如果它的参数可能导致异常被抛出?

0 投票
4 回答
1980 浏览

java - 什么是好的做法?复制构造函数或防御性复制方法

我有一个类图,我需要该图的副本。我将修改图形对象的内部结构(例如:删除边等)。我有两种实现图表的方法。

  1. 复制构造函数
  2. 一个名为“getGraph() { return new Graph(this)}”的方法。getGraph 这个方法可以做一个防御性的拷贝。

据我了解,复制构造函数的唯一优点是随意复制。这意味着如果我不想修改图形对象,则不需要“getGraph”来进行防御性复制。

现在回到我的问题。

  1. 使用复制构造函数更好还是使用返回 self 对象副本的函数更好?
  2. 为什么 ?
0 投票
2 回答
856 浏览

java - Java中防御性副本的效率低下

我是一名长期学习 Java 的 C/C++ 程序员。我已经阅读了通过使用返回对私有字段的引用的访问器方法来破坏封装的问题。标准的 Java 解决方案似乎是防御性复制——调用复制构造函数或 clone() 来创建字段的副本并返回对副本的引用。我不明白为什么似乎没有人担心制作防御性副本的效率低下。在 C++ 中,访问器只会返回一个指向 const 的指针,从而保护私有成员而不进行复制。为什么 Java 没有对 const 的引用?

0 投票
2 回答
74 浏览

java - 围绕超级第一工作

在这里,AsciiChecker启用文本形式的矩阵规范。

isCovered它需要矩阵参数在调用中可用。告诉我如果我在使用它之前初始化该场,我该如何射击我的腿,

0 投票
3 回答
334 浏览

postgresql - 这段代码如何容易发生 SQL 注入?

我在这里阅读 PostgreSql 文档,并遇到了以下代码片段:

文档指出“这种方法通常比将数据值作为文本插入命令字符串更可取:它避免了将值转换为文本并返回的运行时开销,而且它更不容易受到 SQL 注入攻击,因为存在无需引用或转义”。

你能告诉我这段代码是如何容易发生 SQL 注入的吗?

编辑:在我使用过的所有其他 RDBMS 中,这将完全防止 SQL 注入。PostgreSql 有什么不同的实现方式?

0 投票
3 回答
1196 浏览

javascript - javascript问号?:逻辑语法,防御性编程

我正在尝试使用 javascript ?: 语法重写下面的语句。

这是我当前的尝试,它导致语法错误

如果有人能告诉我我做错了什么,我将不胜感激。欢迎任何有关防御性编程最佳实践的随附提示。

0 投票
1 回答
354 浏览

javascript - 创建自定义 javascript 对象时处理未定义的字段

我总是通过以下方式创建 javascript 对象:

我现在想在防守端做到这一点。换句话说,我想在设置 data.field1DataName 之前对其进行测试。我试图通过以下方式做到这一点。

现在,如果缺少数据字段,将在设置对象字段之前捕获。问题是someObject仍然会被创建并且processObject会在不知道有问题的情况下接受它。我的问题是表明存在问题的最佳实践是什么,someObject这样我就可以避免processObject. 如果有人在考虑这个问题的过程中对 javascript 中的防御性编程的更好实践有任何建议,那么我们也非常感谢您的反馈。