1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package logic
- import (
- "app.yhyue.com/moapp/jybase/common"
- "bp.jydev.jianyu360.cn/BaseService/biService/entity"
- "bp.jydev.jianyu360.cn/BaseService/biService/service"
- "context"
- "fmt"
- "github.com/gogf/gf/v2/util/gconv"
- "github.com/tjfoc/gmsm/sm4"
- "regexp"
- "bp.jydev.jianyu360.cn/BaseService/biService/rpc/internal/svc"
- "bp.jydev.jianyu360.cn/BaseService/biService/rpc/pb"
- "github.com/zeromicro/go-zero/core/logx"
- )
- type SendMailLogic struct {
- ctx context.Context
- svcCtx *svc.ServiceContext
- logx.Logger
- }
- func NewSendMailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SendMailLogic {
- return &SendMailLogic{
- ctx: ctx,
- svcCtx: svcCtx,
- Logger: logx.WithContext(ctx),
- }
- }
- var reg1 = regexp.MustCompile("(?i)(insert|delete|update|master|truncate|declare|exec|alter|use)\\s")
- var reg2 = regexp.MustCompile("(?i)(select|from)\\s")
- func (l *SendMailLogic) SendMail(in *pb.ExportByDbReq) (*pb.BiReply, error) {
- if in.Query == "" || in.Token == "" || in.Title == "" || in.Content == "" || in.Mails == "" {
- return &pb.BiReply{
- ErrorCode: 1,
- ErrorMsg: "参数不能为空",
- Data: nil,
- }, nil
- }
- if reg1.MatchString(in.Query) && !reg2.MatchString(in.Query) {
- return &pb.BiReply{
- ErrorCode: 1,
- ErrorMsg: "查询语句不合法",
- Data: nil,
- }, nil
- }
- if RsaEncrypt([]byte(fmt.Sprintf("%s&%s&%s&%s", gconv.String(in.Content), gconv.String(in.Mails), gconv.String(in.Query), gconv.String(in.Title)))) == in.Token {
- return &pb.BiReply{
- ErrorCode: 1,
- ErrorMsg: "token验证不通过",
- Data: nil,
- }, nil
- }
- res := (&service.ExportByDbReq{
- Token: in.Token,
- Title: in.Title,
- Content: in.Content,
- Mails: in.Mails,
- Query: in.Query,
- Stype: in.Stype,
- }).ExportDataByDb()
- return &pb.BiReply{
- ErrorCode: 0,
- ErrorMsg: "",
- Data: res,
- }, nil
- }
- func RsaEncrypt(data []byte) string {
- key := []byte(entity.PublicKey)
- b, _ := sm4.Sm4Ecb(key, data, true)
- return common.GetMd5String(string(b))
- }
|