视频: 【C++教學】1.7 编译执行过程详解 2024
避免代码注入的第一条规则进入C ++程序永远不会有 允许用户输入被通用语言解释器处理。 SQL注入的一个常见错误是程序接受用户输入,就好像它总是可以接受的一样,并将其插入到SQL查询中,然后将其发送到数据库引擎进行处理。 举个例子,一个要求用户输入日期的程序可能会被黑客入侵。最安全和最用户友好的方法是向用户提供日历图形,从中可以选择开始日期和结束日期。程序会根据用户点击的内容创建一个日期。
<!如果这是不可能的,那么程序应仔细检查输入以确保输入的日期格式正确,在这种情况下
yyyy / mm / dd < - 换句话说,四位数字后面跟着一个斜杠,后面跟着两位数字和一个斜杠,最后是两个数字。没有别的东西应该被认为是可以接受有时候你不能具体说明格式。如果您必须允许用户输入灵活的文本,那么您至少可以避免使用特殊字符。例如,不使用单引号或双引号就可以执行SQL代码注入。
//检查一些字符串',以确保它是ASCII的size_type off = s。 find_first_not_of(“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_”); if(off!= string:: npos){cerr <<“errorn”;}
此代码在字符串s
中搜索不是字符A到Z,a到z ,0到9或下划线。如果发现这样的字符,那么程序拒绝输入。