甚么是SQL注入?
SQL注入是一个常见的攻击方式,攻击者利用这类方式将
桂¥哥¥网¥络www.guIgeGe.cn
歹意代码插入到利用程序的SQL语句中,从而履行非法的SQL语句,致使利用程序出现安全漏洞。如何避免SQL注入?
参数化查询是一种使动态SQL语句免于SQL注入攻击的方法。当以数据库连接参数的情势使用它们时,参数化查询会把输入数据真正作为查询参数而不是查询的一部份来处理,即便在参数中包括有害的SQL语句片断,也不会影响到查询的语法。
存储进程是一种预编译的SQL代码,可以重复履行,因此比直接履行SQL语句更安全。存储进程是在数据库中定义的一组SQL语句,可以采取参数化查询,提供良好的SQL性能和代码可读性。
利用程序开发人员应当始终对用户输入的数据进行必要的验证,以确保输入的数据正确、完全、合法。必要的输入验证可以通过将输入值限制为利用程序预定义的值范围来实现,或通过启用输入格式验证来避免不良的输入,从而保障利用程序数据安全。
SQL毛病通常带有关键的系统和利用程序信息,攻击者可以利用这些信息来猜想其他歹意攻击路径,因此,利用程序应当试图尽量地隐藏毛病细节。可以通过将毛病转化为自定义毛病消息或根本不返回毛病消息来减少信息泄漏的风险。
为了避免攻击者已侵入利用程序的情况下进一步深入系统,应当尽量地最小化利用程序的运行权限。例如,如果利用程序不需要访问数据库外的其他资源,就不要为此配置访问权限。
避免SQL注入攻击的另外一种方法是使用防火墙。数据库防火墙可以根据事前定义的规则,拦截和阻塞来自外部攻击者的所有歹意流量。
对任何利用程序开发人员来讲,最重要的事情之一就是确保利用程序已更新到最新的版本,研究并遵守安全最好实践,乃至还要斟酌到未来的安全风险。如果发现安全漏洞,则始终应当及时进行修复。
桂)哥)网)络www.GuIgege.cn
TOP