Как нарисовать горизонтальную разделительную линию с заголовком?

Строка неизменна и идет в пул строк.

char[] - это массив, который вы должны перезаписать после того, как вы использовали пароль, и вот как это должно быть сделано:

char[] passw = request.getPassword().toCharArray()
if (comparePasswords(dbPassword, passw) {
 allowUser = true;
 cleanPassword(passw);
 cleanPassword(dbPassword);
 passw=null;
}

private static void cleanPassword (char[] pass) {
 for (char ch: pass) {
  ch = null;
 }
}

One сценарий, в котором злоумышленник может использовать его, - это crashdump - когда JVM падает и генерирует дамп памяти - вы сможете увидеть пароль.

Это не обязательно вредоносный внешний злоумышленник. Это может быть пользователь службы поддержки, который имеет доступ к серверу для целей мониторинга. Он мог заглянуть в crashdump и найти пароли.

0
задан InteXX 27 March 2019 в 02:55
поделиться

1 ответ

Мне удалось сделать это с помощью пользовательского элемента управления. Это выглядит как во время проектирования и выполнения:

Separator Control

Вот код:

Partial Public Class Line
  Inherits Control

  Private Sub Line_Paint(Sender As Line, e As PaintEventArgs) Handles Me.Paint
    Dim oBackground As Rectangle
    Dim oTextSize As Size

    Dim _
      iX,
      iY As Integer

    oTextSize = TextRenderer.MeasureText(Me.Text, Me.Font)

    Me.Height = oTextSize.Height + 3
    iX = 1
    iY = Me.Height / 2

    Using oPen As New Pen(Me.LineColor)
      e.Graphics.DrawLine(oPen, iX, iY, Me.Width - iX - 1, iY)
    End Using

    Using oPen As New Pen(Color.White)
      e.Graphics.DrawLine(oPen, iX + 1, iY + 1, Me.Width - iX, iY + 1)
    End Using

    If oTextSize.Height > 0 Then
      Using oBrush As New SolidBrush(Me.BackColor)
        oBackground = New Rectangle(7, 1, oTextSize.Width - 2, oTextSize.Height)
        e.Graphics.FillRectangle(oBrush, oBackground)
      End Using

      Using oBrush As New SolidBrush(Me.ForeColor)
        e.Graphics.DrawString(Me.Text, Me.Font, oBrush, 7, 1)
      End Using
    End If
  End Sub



  <DefaultValue(GetType(Color), "System.Drawing.SystemColors.ActiveBorder")>
  <Description("The color of the line.")>
  <Browsable(True)>
  <Category("Appearance")>
  Public Property LineColor As Color
    Get
      Return Me._LineColor
    End Get
    Set(Value As Color)
      Me._LineColor = Value
      Me.Invalidate()
    End Set
  End Property
  Private Property _LineColor As Color = SystemColors.ActiveBorder
End Class
0
ответ дан InteXX 27 March 2019 в 02:55
поделиться
Другие вопросы по тегам:

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