Browse Source

Merge branch 'word_04_03_liu'

rkljw 1 week ago
parent
commit
6019f7a287
2 changed files with 45 additions and 32 deletions
  1. 44 31
      app/Middleware/Auth/SensitiveMiddleware.php
  2. 1 1
      config/autoload/middlewares.php

+ 44 - 31
app/Middleware/Auth/SensitiveMiddleware.php

@@ -15,6 +15,7 @@ use Psr\Http\Server\RequestHandlerInterface;
 use Hyperf\HttpMessage\Stream\SwooleStream;
 use Hyperf\HttpMessage\Stream\SwooleStream;
 use Hyperf\Di\Annotation\Inject;
 use Hyperf\Di\Annotation\Inject;
 use Hyperf\Redis\Redis;
 use Hyperf\Redis\Redis;
+//use Swoole\Http\Request;
 class SensitiveMiddleware implements MiddlewareInterface
 class SensitiveMiddleware implements MiddlewareInterface
 {
 {
     protected ContainerInterface $container;
     protected ContainerInterface $container;
@@ -24,6 +25,10 @@ class SensitiveMiddleware implements MiddlewareInterface
     protected HttpResponse $response;
     protected HttpResponse $response;
     #[Inject]
     #[Inject]
     protected Redis $redis;
     protected Redis $redis;
+    const STREAM_URL = [
+        '/news/addArticle',
+        '/news/updateArticle'
+    ];
     public function __construct( RequestInterface $request, HttpResponse $response)
     public function __construct( RequestInterface $request, HttpResponse $response)
     {
     {
         $this->request = $request;
         $this->request = $request;
@@ -32,41 +37,49 @@ class SensitiveMiddleware implements MiddlewareInterface
 
 
     public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
     public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
     {
     {
+        $uri = $request->getUri();
+        // 获取接口路径(不包含查询参数)
+        $path = $uri->getPath();
+//        var_dump("获取接口地址L:",$path);
         try {
         try {
-            $badWords = $this->redis->sMembers('black_word'); //黑名单
-            $whiteWords = $this->redis->sMembers('white_word');//白名单
-            // 获取所有请求参数并拼接成文本
-            $params = $this->request->all();
-            $concatenated = "";
-             if($params){
-                  foreach ($params as $value) {
-                      if (is_array($value)) {
-                          // 如果值是数组,将数组元素用逗号连接
-                          $concatenated.= json_encode($value);
-                      } else {
-                          // 如果不是数组,直接拼接
-                          $concatenated.= $value;
-                      }
-                  }
-              }
-            // 遍历违禁词,检查是否在文本中存在
-            foreach ($badWords as $badWord) {
-                // 判断该违禁词是否在白名单中,如果在则跳过
-                if (in_array($badWord, $whiteWords)) {
-                    continue;
+            if(in_array($path,self::STREAM_URL)){
+                $badWords = $this->redis->sMembers('black_word'); //黑名单
+                $whiteWords = $this->redis->sMembers('white_word');//白名单
+                // 获取所有请求参数并拼接成文本
+                $params = $this->request->all();
+                $concatenated = "";
+                if($params){
+                    foreach ($params as $value) {
+                        if (is_array($value)) {
+                            // 如果值是数组,将数组元素用逗号连接
+                            $concatenated.= json_encode($value);
+                        } else {
+                            // 如果不是数组,直接拼接
+                            $concatenated.= $value;
+                        }
+                    }
                 }
                 }
-                if (str_contains($concatenated, $badWord)) {
-                    // 处理找到违禁词的情况,例如返回错误信息
-                    $message = '发现违禁词: '. $badWord;
-                    return $this->response->json(
-                        [
-                            'code' => 0,
-                            'data' => [],
-                            'message' => $message
-                        ]
-                    );
+                // 遍历违禁词,检查是否在文本中存在
+                foreach ($badWords as $badWord) {
+                    // 判断该违禁词是否在白名单中,如果在则跳过
+                    if (in_array($badWord, $whiteWords)) {
+                        continue;
+                    }
+                    if (str_contains($concatenated, $badWord)) {
+                        // 处理找到违禁词的情况,例如返回错误信息
+                        $message = '发现违禁词: '. $badWord;
+                        return $this->response->json(
+                            [
+                                'code' => 0,
+                                'data' => [],
+                                'message' => $message
+                            ]
+                        );
+                    }
                 }
                 }
             }
             }
+
+
           return $handler->handle($request);
           return $handler->handle($request);
         }catch (\Exception $e){
         }catch (\Exception $e){
             return $this->response->json(
             return $this->response->json(

+ 1 - 1
config/autoload/middlewares.php

@@ -2,7 +2,7 @@
 return [
 return [
     'http' => [
     'http' => [
         \App\Middleware\CorsMiddleware::class,
         \App\Middleware\CorsMiddleware::class,
-//        \App\Middleware\Auth\SensitiveMiddleware::class,
+        \App\Middleware\Auth\SensitiveMiddleware::class,
         \Hyperf\Validation\Middleware\ValidationMiddleware::class,
         \Hyperf\Validation\Middleware\ValidationMiddleware::class,
     ],
     ],
     'ws' => [
     'ws' => [