标签: data-security

如何在codeigniter中避免sql注入

在CodeIgniter中,如何避免sql注入?是否有任何方法在配置文件中设置以避免sql注入?我正在使用此代码来选择值:

$this->db->query("SELECT * FROM tablename WHERE var='$val1'");
Run Code Online (Sandbox Code Playgroud)

这用于插入值:

$this->db->query("INSERT INTO  tablename (`var1`,`var2`) VALUES ('$val1','$val2')");
Run Code Online (Sandbox Code Playgroud)

用于从数据库中插入和选择值的另一种方法是CodeIgniter insert()get()方法.使用CodeIgniter的bulit-in函数时是否有机会进行sql注入

sql-injection codeigniter function built-in data-security

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

如何在iOS应用程序中存储关键敏感信息,如secret,key,token,encryptionKey

当我们谈论保护iOS应用程序时,我们经常忘记保护最关键的敏感信息,如secret,key,token,encryptionKey.此信息存储在iOS二进制文件中.因此,您的服务器端安全协议都不会对您有所帮助.

有很多建议我们不应该将这些信息存储在应用程序中,而是存储在服务器中并通过SSL安全的Web服务调用获取.但这对所有应用都不可能.例如,如果我的应用程序根本不需要Web服务.

在iOS应用程序中,我们有以下选项来存储信息.

  1. UserDefault:不适合这种情况
  2. 字符串常量:不适合这种情况.可以通过逆向工程来检索或只使用字符串命令
  3. 安全数据库:存储在安全和加密的数据库中.但又有责任保护数据库用户名和密码.
  4. KeyChain:最适合存储关键信息.但是在安装应用程序之前我们无法保存信息.要存储在钥匙串中,我们首先需要打开应用程序,从某些来源读取并存储在钥匙串中.也不适合我们的情况.
  5. 自定义哈希字符串常量:不直接使用来自服务提供商(mixpanel,paypal)的密钥,令牌,密钥,而是使用来自自定义密钥的该信息的哈希版本.这也不是完美的解决方案.但在黑客攻击期间增加了复杂性

请发送一些很好的解决方案来解决这个问题.

iphone data-security ios app-secret

25
推荐指数
3
解决办法
3304
查看次数

符合GDPR标准

刚刚发现这项新法规,它将成为2018年的法律,并影响任何存储欧盟公民数据的人,可以用来识别一个人.更多细节在这里.

我有一个页面,不存储名称和确切的地址,但它存储出生日期和国家/城市作为位置,并使用这两个提供服务(这是核心服务,所以我不能只是停止收集这些数据) .

根据我的理解,我必须采取一些行动以确保遵守GDPR,但我没有找到合理的解释.有十几篇文章重新阐述了GDPR的段落,这根本没有帮助.

我不介意完全删除,解释我存储给用户的数据和类似点...我最担心的是关于匿名数据的部分,所以如果发生违规,他们不能用来识别一个人.我该怎么做?如果我存储用于验证用户帐户的电子邮件地址,并通过PK将出生日期和位置数据绑定到经过验证的电子邮件,则他们不再是匿名的......他们不能,对吧?

是否考虑过符合GDPR标准的实用解决方案?

security data-security anonymize

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

如何使用Electron存储私钥或安全信息/数据

我正在使用电子开发跨平台的独立应用程序.

我希望存储私有数据,如私钥,私有数据,以便在应用程序中执行某些操作.像加密/解密数据一样执行.

要么

我想存储一些安全的信息,如用户密码,应用程序的专有数据

是否有任何可能的方式来存储这些安全信息和应用程序用户无法获得任何方式?

security encryption sandbox data-security electron

10
推荐指数
2
解决办法
5735
查看次数

如何在Python中加密JSON

我有一个 JSON 文件。我正在 python 中运行一个程序,其中从 JSON 文件中提取数据。有没有什么方法可以用密钥加密 JSON 文件,这样如果有人随机打开该文件,它会是一堆乱七八糟的字符,但是当密钥输入到程序时,它会解密并能够读取它?提前致谢。

python encryption json data-security

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

基于权限从WebApi端点进行上下文序列化

我正在使用Asp.Net Web Api.我希望能够根据连接的客户端访问权限过滤掉响应对象上的某些字段.

例:

class Foo
{
    [AccessFilter("Uberlord")]
    string Wibble { get; set; }

    string Wobble { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

返回数据时,Wibble只有当前用户上下文可以满足"Uberlord"的值时,才应返回该字段.

我正在探索三种途径,但我没有一个有效的解决方案:

  1. 自定义WebApi MediaTypeFormatter.
  2. 自定义json.net IContractResolver.
  3. 某种用于操纵响应对象的控制器的AOP包装器

我的问题是:

  • 自定义格式化程序不是正确的位置,但可能是唯一的选择.
  • 自定义json序列化程序无法访问当前上下文,所以我必须解决这个问题.
  • 使用前两个选项,您需要针对每种响应格式,json,xml,某些自定义格式等进行特定实现.这意味着如果支持其他响应类型,则需要自定义格式化程序/序列化程序来防止敏感数据泄漏.
  • AOP控制器包装器需要大量反射.

另一个好处是使用相同的机制从入站请求对象的字段中去除值.

我错过了一个明显的钩子吗?这是通过另一种方式解决的吗?

rest serialization data-security asp.net-web-api

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

云计算和我公司的数据

我正在为我的公司寻找云计算.我似乎无法摆脱的一个问题是; 如果云计算公司倒闭,我的数据和使用它的能力会怎样?

cloud data-security

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

设备密码更改后,AndroidKeyStore消失了

我目前正在开发基于客户端 - 服务器架构的android应用程序.为了数据安全,我使用公钥 - 私钥对进行数据加密和签名.我使用AndroidKeyStore存储密钥对.以下是生成密钥对的代码:

KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(
        mContext)
        .setAlias(mPrivateKeyAlias) 
        .setSubject(new X500Principal("CN=" + mPrivateKeyAlias))
        .setSerialNumber(
                BigInteger.valueOf(System.currentTimeMillis()))
        .setStartDate(start.getTime())
        .setEndDate(end.getTime()).setKeySize(2048).build();

KeyPairGenerator kpGenerator = KeyPairGenerator.getInstance(
        "RSA",
        "AndroidKeyStore");

kpGenerator.initialize(spec);
// Key Pair will be saved in AndroidKeyStore
KeyPair pair = kpGenerator.generateKeyPair();
Run Code Online (Sandbox Code Playgroud)

执行此代码后,将在'/ data/misc/keystore/user_0 /'目录中生成Keystore相关文件(CERT和PKEY文件).我正在加密应用程序敏感数据,如auth-token,并出于安全原因将其保存到Shared Pref.

但是现在当用户更改设备密码或pin时,密钥库文件将被删除,因为用于密钥库加密的Masterkey是使用设备凭据生成的.

现在要修复此问题,我尝试将公钥 - 私钥对保留在RAM中并且密码更改时.从DeviceAdminReceiver的onPasswordChanged(Context context,Intent intent)方法,我执行下面的代码:

KeyStore keyStore = KeyStore
        .getInstance("AndroidKeyStore");
keyStore.load(null);
keyStore.setKeyEntry(mPrivateKeyAlias, mPrivateKey.getPrivateKey(),
        null, new Certificate[] { mPrivateKey.getCertificate() });
Run Code Online (Sandbox Code Playgroud)

但是,在此代码之后,只有CERT文件在'/data/misc/keystore/user_0/'目录中创建,而在使用私钥解密时,会产生一些无效的签名错误.

此外,我与服务器共享我的公钥,使用私钥共享加密数据,因此创建新密钥对不是更好的解决方案.

那么,在设备密码更改后我如何保留我的公共私钥对?如果没有解决方法,AndroidKeyStore的确切用途是什么?我在哪里可以使用它?

security android keystore data-security android-keystore

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

安全地存储数据

我理解大多数情况下安全存储数据的概念,包括将数据存储在一个单独的服务器上,该服务器只允许来自应用程序的连接,加密的密钥对等等.但是,我仍然不了解服务器的分离方式它更加安全.

例如,假设我有一个强化且安全的Web服务器,它从用户输入中捕获数据以进行存储.数据经过加密并通过db查询或Web服务提交给数据库服务器.数据库服务器仅允许来自Web服务器的连接,并以加密形式存储数据.因此,如果有人访问数据库,则数据毫无价值.

但是,如果有人访问Web服务器,他们将可以访问数据库以及加密算法和密钥,不是吗?既然如此,为什么甚至将数据放在不同的服务器上,因为数据传输只是另一个潜在的攻击点?

有没有办法在Web服务器上隐藏连接信息和加密算法,这样如果它被泄露,就无法访​​问数据库服务器?混淆是不够的,我不会想到.欢迎任何想法.

谢谢Brian

php mysql security data-security

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

禁用 flutter web 上的屏幕截图和屏幕录制

我正在flutter web上构建一个包含文本、图像和视频内容的学习平台。如何防止我的网站/应用程序中截取屏幕截图和屏幕录像?

互联网上的所有帖子都与 Android/iOS 相关。找不到 flutter web 的任何答案。

data-security dart flutter flutter-web

5
推荐指数
0
解决办法
560
查看次数

Firebase规则:允许推送但不允许更新

我很难理解如何允许用户在列表中创建新记录,但只允许创建者更新自己的帖子.

例如以下结构:

post {
    post1: {
        author: "user1"
        text: "Some text"
    }
    post2: {
        author: "user2"
        text: "Some text 2"
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我希望两个用户都能够创建新帖子.但也可以保护post2不被user1编辑.因此,只有user1可以编辑post1,只有user2可以编辑post2.

validation data-security firebase firebase-security firebase-realtime-database

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