Jac*_*non 12 php security encryption
我正在为我工作的公司提出求职申请.我已经有了它来防止SQL注入和一些XSS技术.我的主要问题是保护敏感信息,例如SSN和地址,因为公司需要为销售人员的税收制作1099个表格.
我不知道如何做这个部分,但是我应该加密一切,然后在进入MySQL数据库时解密它?
Wes*_*rch 11
这是一个过于简化的答案,应该用一些盐,因为大多数关于安全性的答案:
到处使用SSL.
使用安全加密密钥
对于加密数据的存储,您可以使用BLOB
字段,并使用MySQL的内置加密功能.例:
update mytable set myfield = AES_ENCRYPT('some value', SHA2('your secure secret key', 512));
Run Code Online (Sandbox Code Playgroud)
如果您更喜欢在应用程序代码中进行加密/解密,请查看PHP的Mcrypt函数.
这绝不是一个完整的指南,但它是一个开始,而不是什么都不做.
您可以在https://security.stackexchange.com/上了解更多信息.
带有密钥的SQL查询(正如Wesley Murch 建议的那样)并不是一个好主意.如果你这样做:
update mytable set myfield = AES_ENCRYPT('some value', 'your secure secret key');
Run Code Online (Sandbox Code Playgroud)
...并且查询被记录(inst的slowlog)你的安全密钥以纯文本形式捕获,这绝不应该发生.当你运行查询时,这样一个带有密钥的查询也是可见的SHOW PROCESSLIST
.
下一个问题在哪里存储安全密钥?在PHP文件中?它再次是纯文本.
加密数据:
使用私钥/公钥加密(http://en.wikipedia.org/wiki/Public-key_cryptography).PHP对它有很好的支持.
如果您想了解更多信息,可以谷歌"用户控制加密"或"零知识隐私".
SQL插入/ XSS:
最好的保护是安全的应用程序.毫无疑问.如果你想保护它,你可以使用PHP PHP IDS来检测攻击:https: //github.com/PHPIDS/PHPIDS
我有很好的经验.