关于http接口防止非法调用的设计方案

转载自:http://blog.csdn.net/5iasp/article/details/8576014

关于http接口防止非法调用的设计方案

 

假设有个http接口:

如 http://www.a.com/getBlog.jsp?uid=12 


其他系统要调用这个接口取数据:

如果不做安全处理,任何系统只要知道接口地址和参数即可调用。很可能造成非法调用,造成安全问题。

为了安全,可以考虑如下方案:

接口调用时增加一个校验参数:如 mcheck=xxxxxx


http://www.a.com/getBlog.jsp?uid=12&mcheck=xxxxxx

校验参数生成规则 假设如下:

  md5(uid+"javaboy2012")

参数为uid和某个约定的字符串 经过md5编码后的值。


调用时候:按照生成规则编码后作为参数传递给接口,


http://www.a.com/getBlog.jsp?uid=123&mcheck=8C4E954B6DBD860517B68FAEF37C87CB


借口根据相同的编码规则作判断

getBlog.jsp 文件内容:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.yanek.util.MD5"%>
<%
String uid=request.getParameter("uid");
String mcheck=request.getParameter("mcheck");
String commonkey="javaboy2012";
MD5 md5=new MD5();
if (md5.getMD5ofStr(uid+commonkey).equals(mcheck))
{
   out.print("成功调用,返回合法数据:!"+uid+"的数据");
}
else
{
 out.print("非法调用");
}

%>

你可能感兴趣的:(java,web开发)