閱讀483 返回首頁    go 微軟 go windows


關於http接口防止非法調用的設計方案

關於http接口防止非法調用的設計方案

 

假設有個http接口:

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


其他係統要調用這個接口取數據:

如果不做安全處理,任何係統隻要知道接口地址和參數即可調用。很可能造成非法調用,造成安全問題。

為了安全,可以考慮如下方案:

接口調用時增加一個校驗參數:如 mcheck=xxxxxx


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

校驗參數生成規則 假設如下:

  md5(uid+"javaboy2012")

參數為uid和某個約定的字符串 經過md5編碼後的值。


調用時候:按照生成規則編碼後作為參數傳遞給接口,


https://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("非法調用");
}

%>

 

最後更新:2017-04-04 07:03:45

  上一篇:go 實戰:MySQL Sending data導致查詢很慢的問題詳細分析
  下一篇:go poj 1258 Agri-Net MST