Маскировка данных ProxySQL для нескольких столбцов

вы можете загрузить контент с помощью простого вызова ajax get, если таблица стилей включена из того же домена

Edit после вашего обновления: я пробовал этот код (на FX10) как доказательство концепции , которые используют только один запрос к CSS, но он кажется немного взломанным для меня и должен быть проверен и проверен.

CSS (внешний файл test.css )

div { border: 3px solid red;}

HTML / jQuery

<!doctype html >
<html>
    <head>
       <!-- provide a fallback if js not available -->
       <noscript>
          <link rel="stylesheet" href="test.css" />
       </noscript>
    </head>
    <body>

        <div></div>

        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.js"></script>
        <script>
        $(document).ready(function() {

            $.when($.get("test.css"))
            .done(function(response) {
                $('<style />').text(response).appendTo($('head'));
                $('div').html(response);
            });
        })
        </script>
    </body>
</html>

Вы должны увидеть код CSS внутри div с красной рамкой вокруг. Наслаждайтесь.

0
задан Brian 18 March 2019 в 02:36
поделиться

1 ответ

Использование flagIN, flagOUT и apply позволяет маскировать данные в нескольких столбцах.

Вот окончательный вариант mysql_query_rules, который у меня есть:

/* only show the first character in column_name */
INSERT INTO mysql_query_rules (rule_id,active,username,schemaname,flagIN,match_pattern,re_modifiers,flagOUT,replace_pattern,apply)
          VALUES (1,1,'developer','my_db',0,'(\(?)(`?\w+`?\.)?\`?column_name\`?(\)?)([ ,\n])','caseless,global',6,    "\1CONCAT(LEFT(\2column_name,1),REPEAT('X',CHAR_LENGTH(column_name)-1))\3 column_name\4",0);
/* masking the last 3 characters in second_column_name */
INSERT INTO mysql_query_rules (rule_id,active,username,schemaname,flagIN,match_pattern,re_modifiers,flagOUT,replace_pattern,apply)
          VALUES (2,1,'developer','my_db',6,'(\(?)(`?\w+`?\.)?\`?second_column_name\`?(\)?)([ ,\n])','caseless,global',NULL,
                "\1CONCAT(LEFT(\2second_column_name,CHAR_LENGTH(second_column_name)-3),REPEAT('X',3))\3 second_column_name\4",1);

Значения трех переменных следующие:

  • flagIN, [117 ], apply - это позволяет нам создавать «цепочки правил», которые применяются один за другим. Значение входного флага установлено в 0, и в начале рассматриваются только правила с flagIN = 0. Когда для определенного запроса найдено соответствующее правило, оценивается flagOUT, и если NOT NULL, запрос будет помечен с указанным флагом в flagOUT. Если flagOUT отличается от flagIN, запрос выйдет из текущей цепочки и войдет в новую цепочку правил, имеющую flagIN в качестве нового входного флага. Если flagOUT совпадает с flagIN, запрос будет переоценен снова по первому правилу с указанным flagIN. Это происходит до тех пор, пока не будет найдено больше подходящих правил или пока не будет установлено значение apply (это означает, что это последнее правило, которое будет применено)
0
ответ дан Brian 18 March 2019 в 02:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: