esmaspäev, 11. juuni 2012

httpCookies domain


Kui saad ASP.NET rakenduse paigaldamisel sellise veateate:


Validation of viewstate MAC failed.  If this application is hosted by a Web Farm or cluster,
 ensure that <machineKey> configuration specifies the  same validationKey and validation algorithm.
 AutoGenerate cannot be used in a cluster

Siis põhjuseks võib olla ka see, et web.config failis on http küpsisele seatud peale domeeni piirang

<httpCookies httpOnlyCookies="true" domain="www.minuveeb.ee" />

ja see piirang ei pruudi kokku langeda veebiserveri sertifikaadiga https protokolli jaoks(pole õige)

httpCookie domain piirab ära mis domeenil veebirakenduse küpsist kasutada saab mis annab täiendava kaitse seansirünnakute vastu


esmaspäev, 2. aprill 2012

Räsitabeli kollisioonirünnaku kõrvalmõjud, MS11-100 värskendus

Räsitabeli kollisioonirünnaku turbepaketi MS11-100 kõrvalmõjuna ei pruugi ASP.NET rakendused
enam töötada nii nagu varem, ilmsiks võib see tulla "pikkade nimekirjadega" veebilehtede puhul kus peale turbevärskenduse paigaldamist enam asjad endist viisi ei tööta
Põhjuseks see, et POST parameetrite võtmepaaride arvule on pandud piirang peale.

http://support.microsoft.com/kb/2661403

Käima saab asjad jälle nii, et tuleb web.config failis aspnet:MaxHttpCollectionKeys väärtust suurendada, vaikimisi on see 1000

<configuration>
  <appSettings>
    <add key="aspnet:MaxHttpCollectionKeys" value="1000" />
  </appSettings>
</configuration>
 JSON deserialiseerimise korral on parameetriks
aspnet:MaxJsonDeserializerMembers
Rünnaku matemaatika on kirjeldatud Crosby ja Wallachi poolt aastal 2003
http://www.cs.rice.edu/~scrosby/hash/CrosbyWallach_UsenixSec2003.pdf

neljapäev, 12. jaanuar 2012

AntiXSS 4.2 teegi uuendamisprobleem

Võib juhtuda, et AntiXSS library 4.2 mis 10.jaanuaril 2012 veaparandusteatega välja tuli hakkab rakenduses peale värskendamist kisama:
..AntiXSS ..  The located assembly's manifest definition does not match the assembly reference ..
ja probleemist ei saa lahti ei viidete(reference) eemaldamise ega värskendamisega

Üks veapõhus võib olla see, et teegi seadetes































on faili Original filename AntiXSSLibrary40.dll aga fail ise ketta peal AntiXSSLibrary.dll.
Kui muu ei aita nimeta fail ümber AntiXSSLibrary40.dll - ks, värskenda viited, saad veateatest lahti ja rakendus töötab edasi

reede, 30. detsember 2011

Räsitabeli kollisioonirünnak

On avastatud , et POST parameetrid, mida sirvik serverise tagasi saadab võimaldavad spetsiaalselt koostatult põhjustada (mitte ainult ASP.NET vaid ka teistes keeltes) teenustõkestusründe veebiserverile.


Paigalduspakket tuli üsna nobedalt välja, pikemalt kirjutab Scott Guthrie oma kajamis.

Samas ka hea põhjus lisaks üle kontrollida, kas veebilehel on vaja ViewState säilitada.
ViewState säilitamise saab veebilehe põhiselt maha keerata @Page direktiivi EnableViewState="false" parameetriga.
Hoiame ribalaiust kokku !!

reede, 11. november 2011

netstat -obf

Käsurealt:

netstat -obf 

Näeb midagi programeerjale arusaadavat, mis programmid ja kuhu võrku nad sul arvutist ühenduvad

netstat -obf 5

paneb iga 5 sekundi järel küsima

reede, 4. november 2011

Named Template tegemine XSL abil

Kui on XML dokumendis samas struktuuriga tippe mida vaja teise dokumenti teisendada sobis selleks named
template kasutamine. Lähtedokumendis selline osa sees mida vaja teisendada:

<DocumentParties>
      <BuyerParty context="partner">
        <PartyCode>RISMA</PartyCode>
        <Name>RISMA Peremarket AS</Name>
      </BuyerParty>
      <OrderParty context="partner">
        <PartyCode>RISMA_200</PartyCode>
        <Name>RISMA Peremarket AS Sukupilli KK</Name>
      </OrderParty>
      <SellerParty context="self">
        <PartyCode>-</PartyCode>
        <Name>Vensky Kaubanduse AS</Name>
      </SellerParty>
      <DeliveryParty context="partner">
        <PartyCode>RISMA_200</PartyCode>
        <Name>RISMA Peremarket AS Sukupilli KK</Name>
      </DeliveryParty>
</DocumentParties>

Alamtippude sisu sama aga tipu nimi erinev. Et ei peaks iga tipu jaoks oma malli tegema võib kasutada named template.

Named XSL template väljakutsumine iseenesest selline, parameetrina annab sisse tipu sisu ja tipu nime

<xsl:call-template name="Party">
          <xsl:with-param name="party" select="/E-Document/Document/DocumentParties/OrderParty" />
          <xsl:with-param name="partynode" select="'RecipientParty'" />
</xsl:call-template>

Kogu kupatus  koos tipu olemasolu kontrollidega, InvoiceParties all on need tipud mida peale teisendamist vaja saada

        <InvoiceParties>                       
            <xsl:if test="/E-Document/Document/DocumentParties/SellerParty">
                <xsl:call-template name="Party">
                    <xsl:with-param name="party" select="/E-Document/Document/DocumentParties/SellerParty" />
                    <xsl:with-param name="partynode" select="'SellerParty'" />
                </xsl:call-template>
            </xsl:if>           
            <xsl:if test="/E-Document/Document/DocumentParties/BuyerParty">
                <xsl:call-template name="Party">
                    <xsl:with-param name="party" select="/E-Document/Document/DocumentParties/BuyerParty" />
                    <xsl:with-param name="partynode" select="'BuyerParty'" />
                </xsl:call-template>
            </xsl:if>
            <xsl:if test="/E-Document/Document/DocumentParties/OrderParty">
                <xsl:call-template name="Party">
                    <xsl:with-param name="party" select="/E-Document/Document/DocumentParties/OrderParty" />
                    <xsl:with-param name="partynode" select="'RecipientParty'" />
                </xsl:call-template>
            </xsl:if>
            <xsl:if test="/E-Document/Document/DocumentParties/DeliveryParty">
                <xsl:call-template name="Party">
                    <xsl:with-param name="party" select="/E-Document/Document/DocumentParties/DeliveryParty" />
                    <xsl:with-param name="partynode" select="'DeliveryParty'" />
                </xsl:call-template>
            </xsl:if>
            <xsl:if test="/E-Document/Document/DocumentParties/PayerParty">
                <xsl:call-template name="Party">
                    <xsl:with-param name="party" select="/E-Document/Document/DocumentParties/PayerParty" />
                    <xsl:with-param name="partynode" select="'PayerParty'" />
                </xsl:call-template>
            </xsl:if>
        </InvoiceParties>


Named template ise

<xsl:template name="Party">
    <!--node mis antakse sisse töötlemiseks-->
    <xsl:param name="party" />
    <!--node nimi mis parameetrina sisse antakse-->
    <xsl:param name="partynode" />
    <!--teeme parameetri nime järgi tipu-->
    <xsl:element name="{$partynode}">
        <UniqueCode>
            <xsl:value-of select="$party/PartyCode"/>
        </UniqueCode>
        <Name>
            <xsl:value-of select="$party/Name"/>
        </Name>
        <xsl:if test="$party/DepID">
            <DepId>
                <xsl:value-of select="$party/DepID"/>
            </DepId>
        </xsl:if>
        <xsl:if test="$party/RegNum">
            <RegNumber>
                <xsl:value-of select="$party/RegNum"/>
            </RegNumber>
        </xsl:if>
        <xsl:if test="$party/VATRegNum">
            <VATRegNumber>
                <xsl:value-of select="$party/VATRegNum"/>
            </VATRegNumber>
        </xsl:if>
        <!--kontaktandmed-->
        <xsl:apply-templates select="$party/ContactData"></xsl:apply-templates>
        <!--konto info-->
        <xsl:apply-templates select="$party/AccountInfo"></xsl:apply-templates>
        <xsl:apply-templates select="$party/Extension"></xsl:apply-templates>
    </xsl:element>
</xsl:template>

reede, 21. oktoober 2011

Tühik ja reavahe XSL stylesheedil põhjustavad veateate xsl:attribute korral

XSL stylesheedi rakendamisel annab VisualStudio2010 vea

Attribute and namespace nodes cannot be added to the parent element after a text, comment, pi, or sub-element node has already been added

Vea põhjuseks võivad olla ka reavahetus/tühikud elementide vahel

    <Invoice languageId="" templateId="" channelId="" factoring="" regNumber="" serviceId="" channelAddress="">        
        <xsl:attribute name="invoiceId">
            <xsl:value-of select="/E-Document/Document/DocumentInfo/DocumentNum"/>
        </xsl:attribute>

veast saab lahti kui kahe elemendi vahelt tühikud ja reavahed ära korjad, ei näe küll ilus välja aga töötab

<Invoice languageId="" templateId="" channelId="" factoring="" regNumber="" serviceId="" channelAddress=""><xsl:attribute name="invoiceId">
            <xsl:value-of select="/E-Document/Document/DocumentInfo/DocumentNum"/>
        </xsl:attribute>