针对RFID系统中传统的SQL注入攻击(SQLIA)检测算法成本较高且检测率较低的问题,提出了一种基于数据完整性策略的SQL注入攻击检测和防御算法。利用数据完整性策略,确保输入数据为强类型、语法正确、在长度边界内、仅包含允许的字符、正确签名数字且数字在范围边界内等约束,以防御SQL注入攻击。通过检测查询是否符合意图符合条件、大小符合条件和标识符符合条件来检测SQL注入攻击。实验结果显示,算法具有较高的执行效率,消耗时间仅为节点序列比对算法的29.7%,仅为快速比对算法的76.0%。算法的检测率比常用的检测工具BSQL Hacker和Pangolin分别高出13.8%和20.6%,表明本算法能够保证正常查询,可有效检测和防御SQL注入攻击。