Кто-либо еще находит классы идентификатора и методы одной из самых трудных частей в программировании? [закрытый]

ВАЖНО

. Лучший способ предотвратить SQL Injection - использовать подготовленные выражения вместо экранирования , поскольку демонстрирует принятый ответ .

Существуют библиотеки, такие как Aura.Sql и EasyDB , которые позволяют разработчикам легче использовать подготовленные инструкции. Чтобы узнать больше о том, почему подготовленные операторы лучше в останавливать SQL-инъекцию , см. этот mysql_real_escape_string() обход и недавно зафиксированные уязвимости Unicode SQL Injection в WordPress .

Предотвращение впрыска - mysql_real_escape_string ()

У PHP есть специально созданная функция для предотвращения этих атак. Все, что вам нужно сделать, это использовать функцию функции mysql_real_escape_string.

mysql_real_escape_string берет строку, которая будет использоваться в запросе MySQL, и возвращает ту же строку со всеми попытками внедрения SQL безопасно сбежал. В принципе, это заменит эти неприятные кавычки ('), которые пользователь может ввести с помощью заменителя в MySQL, сэкономленная цитата.

ПРИМЕЧАНИЕ: вы должны подключиться к базе данных, чтобы использовать эту функцию!

// Подключение к MySQL

$name_bad = "' OR 1'"; 

$name_bad = mysql_real_escape_string($name_bad);

$query_bad = "SELECT * FROM customers WHERE username = '$name_bad'";
echo "Escaped Bad Injection: 
" . $query_bad . "
"; $name_evil = "'; DELETE FROM customers WHERE 1 or username = '"; $name_evil = mysql_real_escape_string($name_evil); $query_evil = "SELECT * FROM customers WHERE username = '$name_evil'"; echo "Escaped Evil Injection:
" . $query_evil;

Более подробную информацию вы найдете в MySQL - SQL Injection Prevention .

274
задан 6 revs, 5 users 56% 13 November 2017 в 09:28
поделиться

42 ответа

Я не нахожу его трудным. Если Вы не можете назвать его тогда, возможно, Вам не нужен он. Чем лучше Ваш дизайн, тем легче это желание назвать вещи, которые делает Ваш дизайн.

Теперь временные переменные, это - другая история.:)

0
ответ дан bruceatk 23 November 2019 в 02:12
поделиться

Хорошо я вижу его с другой точки зрения, ее из самых важных вещей, если Вы хотите, чтобы Ваш код был читаем другими.

Попытка сделать его описательным и если от третьего лица, почему бы не включать имя [третьего лица] на имени класса или имени метода.

, Если это берет к длинному, просто используйте любое имя, послесловия, можно изменить его.

0
ответ дан Geries Handal 23 November 2019 в 02:12
поделиться

Когда каждое разумное имя кажется слишком длинным или ambigious, можно попытаться использовать что-то немного меньше разумный, например:

  • класс класса DunnoAskTechSupport GoForHelpLassie
  • класс RTFVM [где V для Поставщика]

, Удостоверяются, что имя действительно уникально и существует описательный комментарий наверху класса, потому что любой, кто видит его в коде, собирается должен искать его для обнаружения то, что это делает (но когда они сделают, они, вероятно, найдут легче помнить).

0
ответ дан too much php 23 November 2019 в 02:12
поделиться

Другая причина, почему у каждого разработчика программного обеспечения должны быть запись и коммуникативные способности.

фунт: Я полагаю, что обширный словарь также важен.

0
ответ дан Demian Garcia 23 November 2019 в 02:12
поделиться

То, что я делаю, проверить, ли это к длинному, если я не могу помнить его к длинному

0
ответ дан Ender 23 November 2019 в 02:12
поделиться

Если 8 из 10 человек понимают его, то можно безопасно предположить, что это понятно и читаемо и ясно. Всегда будут то 1 или 2 средства выбора гниды, которые попытаются дать сбой Вы ни по какой причине кроме этого, они являются мелкими.

0
ответ дан Jobo 23 November 2019 в 02:12
поделиться

Я нахожу, что его более легкое выбирает имя, как только что-то закончено. Осуществите рефакторинг->, Переименовывают ftw.

0
ответ дан Frank Schwieterman 23 November 2019 в 02:12
поделиться

Это обычно чувствует себя очень естественным для меня. Я всегда делаю очень сокращенные методы, никогда, чем 6 строк кода Smalltalk (автоматически отформатированный), таким образом, я действительно не испытываю никаких затруднений при высказывании, о чем этот метод.

Иногда имена классов являются трудными, потому что слово, которое я хочу выбрать, используется где-нибудь в системе, потому что иногда то же слово имеет различные значения в отдельных контекстах. Я желаю, чтобы в тех случаях, некоторый подобный Википедии синтаксис был бы позволен, таким образом, я мог назвать свой класс "Задачей (Объект списка текущих дел)". Пока это не законно, я делаю большое слово немецкого стиля из него: ToDoListItemTask. Вы, возможно, предположили его: Мои имена методов могут быть очень длинными, также. Но я думаю, что они читаемы.

Так, в Вашем случае, Ваш класс является "методом get" или ретривером, или что бы то ни было. Вы уверены, что это должно быть смоделировано в классе? Не был должен скорее документ поставщика быть в состоянии запросить себя? Что-то как vendorDoc.requestFrom (источник); было бы легче назвать, не так ли?

аплодисменты,

niko

0
ответ дан 3 revs 23 November 2019 в 02:12
поделиться

Если Вы - разработчик.NET, я настоятельно рекомендую читать BradA, книгу Cwalina - Руководство по проектированию Платформы. Все объясненные там.

0
ответ дан 23 November 2019 в 02:12
поделиться

Просто суммируйте метод/класс в 'Одном Word', отвечая, для чего это означает? И не должно быть никакого эквивалента для того слова.

0
ответ дан 2 revs 23 November 2019 в 02:12
поделиться

Я чувствую Вашу боль.: /

мне жаль, что не было инструмента для рассмотрения исходного кода в сочетании со словарем данных (файл, описывающий различную переменную / имена методов, я предполагаю вид подобного javadoc), таким образом, Вы могли записать код как это:

class Battery 
{
   double I; // current
   double T; // temperature
   double V; // voltage
   double Q; // charge

   void update(double Inew, double dt) { I = Inew; Q += I*dt; }
   // ... etc ...
};

и рассматривающий код инструмент мог сделать много разных вещей, чтобы облегчить просматривать код в контексте, включая напоминания о дисплее, что я = текущий (например, в области на правой стороне окна это отобразит переменные определения/семантику/комментарии для места в коде, на который Вы нажимаете), или даже позволяют Вам делать "виртуальный рефакторинг", где как рецензент кода Вы могли переименовать что-то к своей симпатии по причинам удобочитаемости/дисплея, на самом деле не изменяя код, сохраненный на диске.

так, как мне нравится самоописывать имена, я очень не хочу читать вещи как BatteryFilteredCurrentInMilliamps. Часто во встроенных системах мы моделируем объекты на основе алгебраических уравнений, и имена как этот в уравнениях становятся очень громоздкими. (с другой стороны, "я" со шляпой на вершине и нижнем индексе "d" и верхнем индексе "*" довольно сбивает с толку.)

я - EE / системный инженер сначала с незначительными обязанностями по программному обеспечению, и в конце я действительно не забочусь о том, чем переменную называют, пока у меня есть удобный способ сказать то, что это, и отображение его в мою собственную внутреннюю модель системы, которой управляют.

0
ответ дан Jason S 23 November 2019 в 02:12
поделиться

Едва ли. Рассмотрение всех трудных вещей, которые необходимо понять в кодировании, говоря, что классы идентификатора и методы являются одной из самых трудных вещей в программировании, нелепо. Не понимайте меня превратно, иногда трудно думать о хорошем имени, но давайте будем настоящими здесь. Я пойду как далеко, чтобы сказать, что это - одна из самых легких частей программирования.

0
ответ дан Rayne 23 November 2019 в 02:12
поделиться
Другие вопросы по тегам:

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