web服务器通用cookie注入漏洞怎么防御
解决方案一:找到Office 2007的安装文件
第一步:因为除Visual Studio本身以外,VS安装过程中安装的其他附带安装的组件,基本上都是有单独安装包的。先找到Visual Studio Web 创作组件的独立安装包,试试单独安装能不能成功。果然,在安装DVD的\WCU\WebDesignerCore文件夹中找到了“Visual Studio Web 创作组件”的安装程序。将其复制到硬盘上并解压缩,可以发现该组件使用的是Office 2007的安装方式,运行其中的setupexe,出现与Office 2007相同的安装程序界面。单击“立即安装”,结果出现找不到officezh-cn文件夹中文件的对话框,选择了安装程序所在的正确位置并确定,又再一次弹出同样的窗口,安装无法继续。
第二步:仔细核对文件名,确定安装文件夹中的确有需要的文件,但为什么还是提示找不到呢?
既然这个组件使用Office 2007的安装方式,文件夹中也有officezh-cn这个和Office 2007共有的组件,那会不会是因为Office 2007的问题,导致Visual Studio Web 创作组件无法安装呢?
你那叫别人上传了 webshell ,不是注入了webshell , 防止别人入侵,除了服务器自身的安全之外, 就在你的程序上了, 可以通过以下简单的方法解决:
1, 后台不要用admin manage 这些简单的单词来作为目录, 可以搞一个复杂点的目录地址;
2,注意编辑器, 这些都是黑客入口, ewebeditor, fckeditor, kindeditor, ueditor 这些敏感地址目录最好修改下, 你自己记得就可以, 如果是需要暴漏在对外的编辑器, 建议使用简单点的编辑器,取消上传功能上传功能就是别人的入口;
3,如果你是mssql的数据库的话, 千万要注意 防注入,有注入点, 然后知道你网站路径的话,别人可以直接差异备份;
4,如果服务器权限设置有问题, 比如每个网站不是独立的用户,那么,你再怎么防也意义不大
还有需求的话,可咨询我
sql注入其实就是在这些不安全控件内输入sql或其他数据库的一些语句,从而达到欺骗服务器执行恶意到吗影响到数据库的数据。防止sql注入,可以在接受不安全空间的内容时过滤掉接受字符串内的“'”,那么他不再是一条sql语句,而是一个类似sql语句的zifuc,执行后也不会对数据库有破坏。如:-----下面这一段是找的username = request("username") //获取用户名 这里是通过URL传值获取的password = request("password") //获取密码 也是通过URL传值获取的sql="select from userlist where username = '" & username & "' and password = '" & password & "'"--------如果某个人知道某个用户名是admin,常常有人网站的管理员用户名就是admin,这是密码可以选用'or 1 or ',那么sql="select from userlist where username = 'admin' and password = '' or 1 or ''",显然1是恒真的,那么验证密码就通过了。补充:防止的方式比较多,比如可以限制username,password中出现"'"这些字符,一般网站都是只允许数字,字符,下划线的组合,这可以通过javascript验证。也可以采取用存储过程代替sql拼接,等等。
深圳专业网站建设服务公司“图兰科技”为你解答。
防止黑客入侵服务器第一步:防ACCESS数据库下载
添加MDB的扩展映射就可以了。方法:IIS属性,主目录,配置,映 射,应用程序扩展里添加mdb的应用解析,至于选择的解析文件大 家可以自已测试,只要访问数据库时出现无法找到该页就可以了, 这里给出一个选择为wamdll
防止黑客入侵服务器第二步:防上传
以MSSQL数据库为例。在IIS的WEB目录,在权限选项里只能IIS用户 读取和列出目录的权限,然后进入上传文件保存和存放数据库的目 录,给IIS用户加上写入的权限,然后在这二个目录的属性,执行权 限选项
防止黑客入侵服务器第三步:防MSSQL注入
这很重要,在一次提醒,连接数据库万万不能用SA帐号。一般来说 可以使用DB——OWNER权限来连接数据库。不过这存在差异备份来获 得WEBSHELL的问题。下面就说一下如何防差异备份。
差异备份是有备份的权限,而且要知道WEB目录。现在找WEB目录的 方法是通过注册表或是列出主机目录自已找,这二个方法其实用到 了XP_REGREAD和XP_DRITREE这二个扩展存储,我们只要删除他们就 可以了。但是还有一点就是万一程序自已爆出目录呢。所以要让帐 号的权限更低,无法完成备份。操作如下:在这个帐号的属性,数 据库访问选项里只需要选中对应的数据库并赋予其DB_OWNER权限,对 于其它数据库不要操作,接着还要到该数据库,属性,权限,把该用户 的备份和备份日志的权限去掉就可以了,这样入侵者就不能通过差异 备份来获取WEBSEHLL了
上面给出了三种方法,可能还有人会说有注入点怎么办,哪真是老生 常谈了,补嘛至于怎么补,如果你不懂写过滤语句的话,就用网上现 成的防注入系统好了
在数据进入数据库之前对非法字符进行转义,在更新和显示的时候将非法字符还原
在显示的时候对非法字符进行转义
如果项目还处在起步阶段,建议使用第二种,直接使用jstl的<c:out>标签即可解决非法字符的问题。当然,对于Javascript还需要自己处理一下,写一个方法,在解析从服务器端获取的数据时执行以下escapeHTML()即可。
附:Javascript方法:
StringprototypeescapeHTML = function () {
return thisreplace(/&/g, ‘&’)replace(/>/g, ‘>’)replace(/</g, ‘<’)replace(/”/g, ‘"’);}
如果项目已经开发完成了,又不想大批量改动页面的话,可以采用第一种方法,此时需要借助Spring MVC的@InitBinder以及orgapachecommonslangPropertyEditorSupport、orgapachecommonslangStringEscapeUtils
public class StringEscapeEditor extends PropertyEditorSupport {
private boolean escapeHTML;
private boolean escapeJavaScript;
private boolean escapeSQL;
public StringEscapeEditor() { super(); }
public StringEscapeEditor(boolean escapeHTML, boolean escapeJavaScript, boolean escapeSQL) {super();thisescapeHTML = escapeHTML;
thisescapeJavaScript = escapeJavaScript;
thisescapeSQL = escapeSQL;}@Overridepublic void setAsText(String text) {
if (text == null) {
setValue(null);} else {String value = text;
if (escapeHTML) { value = StringEscapeUtilsescapeHtml(value); }
if (escapeJavaScript) { value = StringEscapeUtilsescapeJavaScript(value); }
if (escapeSQL) { value = StringEscapeUtilsescapeSql(value); } setValue(value); }}@Overridepublic String getAsText() { Object value = getValue(); return value != null valuetoString() : “”; }}
在上面我们做了一个EscapeEditor,下面还要将这个Editor和Spring的Controller绑定,使服务器端接收到数据之后能够自动转移特殊字符。
下面我们在@Controller中注册@InitBinder
@InitBinder
public void initBinder(WebDataBinder binder) {
这个方法可以直接放到abstract Controller类中,这样子每个Controller实例都能够拥有该方法。
0条评论