** Предупреждение: подход, описанный в этом ответе, применим только к очень конкретным сценариям и не является безопасным, поскольку атаки SQL-инъекции не только полагаются на возможность вставлять X=Y
. **
Если злоумышленники пытаются взломать форму с помощью переменной PHP $_GET
или с помощью строки запроса URL, вы сможете поймать их, если они не защищены.
RewriteCond %{QUERY_STRING} ([0-9]+)=([0-9]+)
RewriteRule ^(.*) ^/track.php
Поскольку 1=1
, 2=2
, 1=2
, 2=1
, 1+1=2
и т. д. ... являются распространенными вопросами к базе данных SQL злоумышленника. Возможно, он также используется многими хакерскими приложениями.
Но вы должны быть осторожны, чтобы не переписывать безопасный запрос с вашего сайта. Вышеупомянутый код дает вам возможность переписать или перенаправить (зависит от вас) эту динамическую строку запроса, зависящую от хакерства, на страницу, в которой будет храниться IP-адрес злоумышленника или EVEN THEIR COOKIES, история , браузера или любой другой конфиденциальной информации, поэтому вы можете иметь дело с ними позже, запретив их учетную запись или контактные органы.
Можно преобразовать int
назад участнику перечисления с простым броском, и затем звонить ToString()
:
int value = GetValueFromDb();
EnumDisplayStatus enumDisplayStatus = (EnumDisplayStatus)value;
string stringValue = enumDisplayStatus.ToString();
можно просто бросить его
int dbValue = 2;
EnumDisplayStatus enumValue = (EnumDisplayStatus)dbValue;
string stringName = enumValue.ToString(); //Visible
ах.. Кент избил меня к нему:)
DB к C#
EnumDisplayStatus status = (EnumDisplayStatus)int.Parse(GetValueFromDb());
C# к DB
string dbStatus = ((int)status).ToString();
Просто бросьте интервал к перечисляемому типу:
EnumDisplayStatus status = (EnumDisplayStatus) statusFromDatabase;
string statusString = status.ToString();
я использовал этот код, приведенный ниже
CustomerType = ((EnumCustomerType)(cus.CustomerType)).ToString()