标签: secure-coding

密码的char []或StringBuilder?

因此,因为字符串是不可变的,我们使用char []而不是String来存储密码,这样我们就可以在完成它时删除字符.在这种情况下,StringBuilder(或StringBuffer)是否像char []一样安全,因为可以将密码的值更改为""?

java secure-coding

4
推荐指数
1
解决办法
1101
查看次数

如何防止iOS上的格式字符串攻击和缓冲区溢出?

Apple的安全编码指南文档提供以下指导:

  • 格式字符串攻击
  • 缓冲区溢出

不清楚(对我来说,无论如何)是如何在使用NSString时防止格式字符串攻击和缓冲区溢出.

我如何防范此类攻击?我可以申请哪些类别来防范这种情况吗?我可以使用"安全"的NSString等效物吗?

security iphone objective-c ios secure-coding

3
推荐指数
1
解决办法
1239
查看次数

TOCTOU的竞争条件如何运作?

以下代码应该容易受到TOCTOU攻击:

 public Period(final Date start, final Date end) {
    if (start.compare(end) > 0) {
       throw new IllegalArgumentException("");
    }

    this.start = start;
    this.end = end;      // Class period has 2 private final member 
                         // variables Date start & end.

 }
Run Code Online (Sandbox Code Playgroud)

我不明白的是,这种竞争条件将如何运作?假设有2个线程T1和T2,其中T1有一组有效的参数,应该通过检查,T2是一个想要在类中设置无效值的黑客.

如果2个线程正在竞争并且这段代码是我们的关键部分,则说T1运行通过检查并休眠.现在,当T2开始运行时,它是否会再次通过检查(并且失败)?

java security multithreading race-condition secure-coding

3
推荐指数
1
解决办法
1320
查看次数

运行时错误除以-1

我不怀疑是否需要检查除零.我从来没有听说过负面检查分区!

if( *y == 0 )
    return 0; //undefined
else
    return *x / *y;
Run Code Online (Sandbox Code Playgroud)

x, y指向int32_t,我在相关的情况下包括这个细节.

在运行时,如果*x==0x80000000, *y==0xffffffff,我得到错误(在Xcode中):

EXC_ARITHMETIC(代码= EXC_I386_DIV,子代码= 0x0)

我在网上找到的所有建议都是除零,但正如你从上面的检查中看到的,我可以从调试窗口看到,这不是这里的情况.

错误意味着什么,我该如何解决?

c++ xcode integer-division secure-coding

3
推荐指数
1
解决办法
238
查看次数

AWS中的.Net Core Store私钥

我正在实现一个安全系统(使用.Net Core 2.0),其中需要密钥对(公共和私有)生成并将公钥传输给收件人.目前我生成密钥对(使用.Net Core Crypto库)并将私钥保留在DB中.我需要在AWS EC2实例中托管它.

我知道这是一种不好的做法(在数据库中存储私钥),我需要在安全保险库(AWS?)中生成这些密钥,并将私钥保存在保险库本身中.当需要解密时,应用程序需要检索相应的私钥.

我浏览了许多AWS文档,但找不到符合我要求的明确答案.如果有人能够就如何实现这一点向我提供一些明确的指示,那就太好了.

pki secure-coding aws-sdk .net-core

3
推荐指数
1
解决办法
556
查看次数

snprintf vs std :: stringstream

我正在努力消除SECURITY CODING产品中的违规行为.我的代码有很多sprintf,覆盖率工具建议我使用snprintf,但C++也有std::stringstream.用它std::stringstream代替是一个好主意snprintf

c++ printf stringstream secure-coding

2
推荐指数
1
解决办法
1675
查看次数

JAVA - 可能的SQL注入

所以我有这段代码:

String username = props.getProperty("jdbc.username");
try {
                String username = parts[1];

                // Check procedure
                System.out.println("Checking user");

                // Check database user table for username
                conn = getSQLConnection();
                Statement stat = conn.createStatement();
                ResultSet user = stat.executeQuery( "SELECT * FROM USER WHERE log_id='" + username + "';" );
                // Check given password against user entry
                if(user.next()){
                    System.out.println("User Exists: " + username);
                    sendMessage("true");
                    return;
                }
                else{

                    System.out.println("User Does Not Exist: " + username);
                    sendMessage("false user");
                    return;
                }
Run Code Online (Sandbox Code Playgroud)

出于教育目的,即使我知道输入来自哪里,SQL语句是否受SQL注入保护?

java sql sql-injection jdbc secure-coding

2
推荐指数
1
解决办法
247
查看次数

清除堆栈上的变量

代码片段:

int secret_foo(void)
{
  int key = get_secret();
  /* use the key to do highly privileged  stuff */
  ....

  /* Need to clear the value of key on the stack before exit */
  key = 0;      
  /* Any half decent compiler would probably optimize out the statement above */
  /* How can I convince it not to do that? */

  return result;
}
Run Code Online (Sandbox Code Playgroud)

我需要在执行key之前从堆栈中清除变量的值return(如代码所示).

如果您感到好奇,这是一个实际的客户需求(嵌入式域).

c secure-coding

2
推荐指数
1
解决办法
655
查看次数

如何修复 getResultList 元素中的 Checkmarx Stored XSS 问题

在 Java 中,在下面的行中:

TypedQuery<T> query=entityManger.createQuery(queryString, clazz);

List<T> result =query.getResultList();
Run Code Online (Sandbox Code Playgroud)

也就是说,变量结果需要正确过滤或编码,否则可能会引发跨站脚本攻击。

我已经使用了HtmlUtils.htmlEscape(queryString)String 对象。

任何帮助和建议将不胜感激。谢谢

java xss secure-coding checkmarx

2
推荐指数
1
解决办法
1万
查看次数

RSA双向解密?

我一直在 python 中尝试 RSA 加密(cryptography.hazmat.primitives.ametry)。我有以下设置:一端是具有公钥的客户端,将加密数据发送回保存私钥的服务器。现在我已经可以进行单向加密,但我想知道您将如何(或者是否应该)安全地解密消息客户端。我想过只加密私钥并存储它,但密码会出现在代码中并使密钥暴露。有没有办法通过密钥交换安全地实现这一点?或者——最可能的选择——这是对协议的滥用吗?

编辑:想要澄清的是,这里可能的问题是,以这种方式使用 RSA 可能会暴露文件系统上或服务器和客户端之间的私钥。

cryptography rsa secure-coding

1
推荐指数
1
解决办法
932
查看次数

如何解决截断表的SQL注入问题

下面是我截断表记录的代码行。表值来自前端。在我的 Veracode 扫描中,它显示了 SQL 注入。我怎样才能避免这种情况?我无法创建存储过程,因为连接字符串是动态的,我需要截断此表。还有另一种方法吗?

SqlCommand cmd = connection.CreateCommand();
cmd.Transaction = transaction;
cmd.CommandText = "TRUNCATE TABLE " + tablename;
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

c# sql sql-injection secure-coding

1
推荐指数
1
解决办法
155
查看次数

保护联系表单脚本

你好!我只是想知道我刚刚创建的这个contactform脚本有多安全?很久以前,当我制作我的联系表时,我的老师正在唠叨我.

if($_SERVER['REQUEST_METHOD'] === 'POST'){

    $myemail  =    "email@adress.com";
    $name      =    $_POST['name'];
    $email    =    $_POST['email'];
    $phone    =    $_POST['phone'];
    $subject  =    $_POST['subject'];
    $comments =    $_POST['comments'];

   if($name == 0 || !preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email) || !preg_match("/^\d{2}(-\d{3}){2}(\d{2})?$/", $phone) || $subject == 0 || $comments == 0){

       $error_message = 'Something was written wrong..';

   } else {

       $message = "Hello!
       Your contact form has been submitted by:
       Name: $name
       E-mail: $email
       Phone: $phone
       Comments: $comments
       End of message";
       mail($myemail, $subject, $message);
       $error_message = 'Your message was sent!';

    } …
Run Code Online (Sandbox Code Playgroud)

php email contact-form secure-coding

0
推荐指数
1
解决办法
8734
查看次数

向后兼容性和功能的安全版本

我正在用C编写一些程序(很少用C++).通常它们很简单,但通常它们可以变大.

我希望了解有关使用安全版本功能的更多信息,例如strcpy()不安全,并且strcpy_s()是微软新功能的安全版本.

我通常在编写Windows *时使用Visual Studio 2010 我删除了关于Linux的部分 - 仅关注Windows*

我的问题是,如果我使用较新的安全版本,我仍然可以在旧版本的Windows上执行我的程序,例如Windows 95吗?由于要求,我们只能有一个可执行文件.

谢谢.

编辑: 对不起,这只是出现在我脑海中 - 忽略上面的Linux部分.如果我们为Windows编写代码,我不介意它是否不能移植到Linux,我只关心它是否仍适用于旧版本的Windows.

c c++ security visual-studio-2010 secure-coding

0
推荐指数
1
解决办法
92
查看次数