我一直在编码C++
,Matlab
以及用于科学目的很长一段时间,现在类似的语言,但我最近想进入网络编程.我教过我自己HTML
和CSS
我已经涉足Javascript
,PHP
和mySQL
.我真的想开始制作更高级的,用户驱动的网站(如果这样做有意义 - 最终网站类似于twitter和facebook的功能),但我担心我对互联网安全和漏洞的了解不足以确保我做的编程决策是安全/安全的.
您有什么建议或者您可以提供给我的信息,这将有助于我对我生成的代码的安全性充满信心.
如果这些都没有意义,或者您想要澄清一下,那就问一下.
其他提交的答案提供了很好的建议,但要将其分解为一个规则系统:
假设您的用户主动充满敌意.
假设您的代码不安全.
...您的用户提交.
...存储在数据库中.
...您从数据库中读取的内容.
不允许用户看到您未创建的任何错误消息.如果`verify_username()预计,正好两个parameters`不要让你的用户曾经看到错误消息.他们不应该知道您的功能的名称,也不知道他们期望使用,输出或失败的名称.
你的代码和我的代码很糟糕; 掌握新工作.
阅读主题,甚至是那些你觉得沉闷的主题,绝对是你理解困难的主题.
假设你的用户比你更聪明(那些是积极敌对的可能比你更有经验打破你的锁).
对您能想到的所有内容进行错误检查,然后让四周左右的孩子按下所有内容并填写您可能拥有的任何表单/字段.如果出现问题(字母数字而不是整数或其他任何内容),请添加错误条件以阻止它将脚本的内部暴露给世界.
将所有可能的内容移到Web根目录之外,以防止用户从其他站点或其计算机访问脚本的任何可能性.
这可能有点黯淡或愤世嫉俗,但即使有了这些规则,我也不认为我们会"安全".安全是最古老的升级战争形式之一; 有些我们赢了,有些我们输了,但我们只会听到损失.我们不可能听到所有这些.
只要尽力保持这些,然后,如果你想到任何更偏执的方式来影响你的网站的安全性,不要犹豫,变得更加实际 - 偏执.然后回到社区; 我们都需要帮助.