fw in the user agent - http

one user agent string is:
mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; btrs121199; sv1; infopath.1; fw 2.0.6767)
Does anyone know what fw 2.0.6767 means?
Does it mean firmware?
Can I change the version easily?

As far as my knowledge goes, user agent strings don't provide firmware versions unless they are manipulated by users.
The fw 2.0.6767 fragment present on that UA string may refer to a framework version; Adware or custom fragment added by an application or by the user itself.
Decomposing the UA string:
mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; btrs121199; sv1; infopath.1; fw 2.0.6767)
mozilla/4.0
Application name and version. For historical reasons, Internet Explorer identifies itself as a Mozilla browser.
compatible;
Compatibility flag token. It indicates that Internet Explorer is compatible with a set of common features.
msie 6.0;
The Version token identifies the browser and contains the version number, as reported by the current browser mode. The value indicates Windows Internet Explorer 6.
windows nt 5.1;
Microsoft Windows NT version 5.1 (commonly known as Windows XP Professional).
btrs121199;
Unknown fragment *
sv1;
Windows XP Service Pack 2 installed (Security Version 1)
infopath.1;
MS Infopath version 1 (an MS Office extra application) and means that it may be collecting data for use in a forms based application.
fw 2.0.6767
Unknown fragment *
* May relate to an Adware or a custom identification added by a application being used.
This is the result that I've been able to compile after 5 hours researching, reading and cross-referencing information.
Online UA analysis tools:
You can refer the following websites that provide tons of UA strings, including the fragments identification for any given UA string:
User Agent String.Com
UA string analysis :: user-agent-string.info
User Agent Search - Browser Capabilities Project
Additional information provided by browser vendors:
MDN - Gecko user agent string reference
MSDN - Understanding User-Agent Strings
Opera - User Agent String

Related

SSRS ReportViewer 401 (Machine Account) domain\machine$

Before I go into the issue let me first explain the architecture I'm working with.
DB-Server - SQL Server 2019, Windows 2019
SSRS-Server - SSRS 2019, Windows 2019
Web-Server - IIS v10, Windows 2019
All servers are on the same domain.
The application rendering the report is written in ASP.NET using the rsweb:ReportViewer control.
Requirement: I need the ability to access reports from the ASP.NET application using a machine level account.
Current Error: The request failed with HTTP status 401: Unauthorized.
What I've done so far...
Added machine account to SSRS. I've given it permissions at all levels: site settings, folders, reports. Once I get it working I'll dumb down the rights but for now I need it working. This machine level account is the Web-Server. My assumption is any access from the Web-Server to the SSRS-Server will be granted.
Changed the application pool's identity to LocalSystem. Yes this may violate least privilege but again I'm viewing this as a POC at this point. I've also tried NetworkService.
Web.config. There may be something I need to do here to make this work. I've tried using identity impersonate but I had no success but it's possible I didn't use it in combination with another setting. When I have the authentication mode set to Windows the Windows Identity used by ASP.NET is NT AUTHORITY\IUSR. Removing this line gives me NT AUTHORITY\NETWORK SERVICE as the Windows Identity. I would think the NETWORK SERVICE account would be granted; however, this still results in a 401 error.
Modified the "rsreportserver.config" file (C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\rsreportserver.config)
ASP.NET ReportViewer setup:
ReportViewer1.ServerReport.ReportPath = rc.report_ssrs_path;
ReportViewer1.ServerReport.ReportServerUrl = new System.Uri(rc.report_ssrs_url);
SqlConnectionStringBuilder conString = new Database().conBuilder;
List<ReportParameter> parameters = new List<ReportParameter>();
parameters.Add(new ReportParameter("ConString", conString.ConnectionString));
ReportViewer1.ServerReport.SetParameters(parameters);
DataSourceCredentials dsc = new DataSourceCredentials();
dsc.Name = ReportViewer1.ServerReport.GetDataSources()[0].Name;
dsc.UserId = conString.UserID;
dsc.Password = conString.Password;
ReportViewer1.ServerReport.SetDataSourceCredentials(new DataSourceCredentials[] {
dsc });
ReportViewer1.ShowCredentialPrompts = false;
ReportViewer1.ServerReport.Refresh();
If anyone could help it would be greatly appreciated. I've scoured the internet for a solution to this with no luck. It seems like it should be possible and a lot of the things I've read make it sound like it is. I'm sure I'm just missing something minor.

Disable Application Insights from emitting AI (Internal): 72 message:

I recently added #microsoft/applicationinsights-web (version 2.4.4) for one of my projects. I noticed that the latest version automatically dispatches the following trace :
AI (Internal): 72 message:"Mozilla/5.0 (en-US) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36"
How do I disable it? I can't seem to see any config options like IsTracingDisabled to disable dispatching traces by default.
You can disable telemetry sent to help track SDK configuration issues by setting loggingLevelTelemetry: 0.

SparkPost SMTP relay with StartTLS suddenly gives error "Authentication failed because the remote party has closed the transport stream."

I have a (long) running webapplication written in VB on the ASP.NET 4.0 framework.
We have been using SparkPost to send e-mails for a while, but since a few days (not sure about the exact date), the e-mail functionality has stopped working and started giving the following error message
Authentication failed because the remote party has closed the transport stream.
We use MailKit version 1.22 (latest to support ASP.NET 4.0) to make the connection and send the e-mails like so:
Using objMessage As New MailMessage(from, to, title, message)
objMessage.IsBodyHtml = True
'https://github.com/jstedfast/MailKit
Using client As New MailKit.Net.Smtp.SmtpClient()
''accept all SSL certificates (in case the server supports STARTTLS)
client.ServerCertificateValidationCallback = Function(sender, certificate, chain, errors)
Return True
End Function
''Note: since we don't have an OAuth2 token, disable the XOAUTH2 authentication mechanism.
client.AuthenticationMechanisms.Remove("XOAUTH2")
client.AuthenticationMechanisms.Add("AUTH LOGIN")
client.Connect("smtp.sparkpostmail.com", 587, SecureSocketOptions.StartTls)
''Note: only needed if the SMTP server requires authentication
client.Authenticate("SMTP_Injection", "**********************")//the asterixes are the API key
client.Send(objMessage)
client.Disconnect(True)
End Using
End Using
this setup with StartTLS is what SparkPost documentation wants me to use.
I read that SparkPost has recently stopped supporting TSL 1.0. Could this be the culprit?
The .NET Framework 4.0 use SSL3.0 or TLS1.0 as default protocol. The easiest way to fix the problem is to upgrade your existing application to .NET Framework 4.6.2. After the upgrade your app will use the TLS1.2 protocol as default. You can read more about it here

Invalid date in HttpCookie.parse; What should be the behavior?

Today I changed the java I have been using on my desktop from the Oracle JDK 1.7 to the OpenJDK 1.7.
So I went from
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
to
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
I then ran the unit tests for one of my projects and what has been running successfully before now failed.
The failing test in question did something like this:
List<HttpCookie> cookies =
HttpCookie.parse("FOO=BAR; expires=Thu, 01-Jan-2020 00:00:10 GMT");
HttpCookie cookie = cookies.get(0);
and then an assertion using the value from
cookie.getMaxAge();
The problem I found is that suddenly the cookie.getMaxAge() always returned a 0 instead of the expected 'big' value.
It turns out that I ask an invalid question: 01-Jan-2020 is a Wednesday, not a Thursday.
I fixed this error in my unit test (so now I ask for "Wed, 01-Jan-2020" and this now works).
For me the question remains: What 'should' be the behavior in case of 'not so good input'?
Both behaviors I see here have some validation.
Apparently:
Oracle: The date can be parsed so we return the value. The 'day of the week' is just a 'hint'.
OpenJDK: This date cannot exist as it was specified so we return a 0
Is there a specification on this point?
From the Oracle javadoc we see that the string must be a set-cookie (Netscape proposal) or set-cookie2 (RFC 2965). Your string is following the Netscape proposal.
From the Netscape proposal:
The date string is formatted as:
Wdy, DD-Mon-YYYY HH:MM:SS GMT
This is based on RFC 822, RFC 850, RFC 1036, and RFC 1123, with the variations that the only legal time zone is GMT and the separators between the elements of the date must be dashes.
From RFC 822:
5.2. SEMANTICS
If included, day-of-week must be the day implied by the date specification.
So your string is not a set-cookie string.
The parse method should throw an IllegalArgumentException if:
header string violates the cookie specification's syntax, or the cookie name contains illegal characters, or the cookie name is one of the tokens reserved for use by the cookie protocol
The day-of-week error is a semantic violation of the specification and not a syntactic one, so no exception has to be raised.
In conclusion, the behavior of the parse method encountering a date with a wrong day-of-week is not defined. The specification should either impose to raise an IllegalArgumentException, either impose to ignore the problem as the day-of-week is an optional redundant information.

using Webdav .Net Engine from ITHits for direct edit MS Office File

I'm trial http://www.webdavsystem.com/ .Net WebDav Server and having problem direct editing on Word file which always open in read-only mode. (tested with Visio, Excel same problem)
I've tried several things noted in the page http://www.webdavsystem.com/server/prev/v2/documentation/ms_office_read_only
Here are the results
Yes: My WebDAV configured on server site root.
Yes: My WebDAV support Class 2. (using built-in wizard to generate project)
No: I didn't open web-hyperlinked file, I opened from M:\Folder\File.doc as Mapped Drive
Yes: I've Cleared Microsoft Office WebDAV cache in registry.
Yes: I've Excluded client side MS Office issues. By testing with
www.ajaxfilebrowser.com, works perfectly.
Two things I can't really do by suggestions on the webpage are
I've enable Log flag in Web.config file and attached here
http://www.sendspace.com/file/fp3yrz as I can't really understand
Log syntax much.
Also I don't know much enough to try with Fiddle (Examine WebDAV
requests with a Fiddler tool ) And my server configured to use
Digest Authentication over Standard HTTP, it seemed to work - drive
mapping has no a problem.
My Environment : VS2012 Ultimate ran on Win7 ultimate 6GB Ram (also act as a client pc), Server : Winserver 2012 Std, 2GBRam
I examined your log, it looks ok, I did not found any issues.
Microsoft Mini-redirector many cache authentication info. Here is what else you can try:
Unmount your WebDAV folders using net use * /DELETE command (or its variants).
Clear saved logins using following command:
rundll32.exe keymgr.dll, KRShowKeyMgr
LOCK request should reach success for an Office document to be opened for editing (not read-only). This will ensure that the document will not be edited by two or more persons at a time.
But in your log file I can see 5 LOCK request and 4 of them failed (with reductions):
[7] [LOCK] /685/test_D47H.doc
User-Agent: Microsoft-WebDAV-MiniRedir/6.1.7601
Timeout: Second-3600
[7] <?xml version="1.0" encoding="utf-8" ?><D:lockinfo xmlns:D="DAV:"><D:lockscope><D:exclusive/></D:lockscope><D:locktype><D:write/></D:locktype><D:owner><D:href>admin</D:href></D:owner></D:lockinfo>
[7] HTTP/1.1 403 Forbidden
X-Env-Version : 4.0.30319.17929 32bit
X-OS-Version : Microsoft Windows NT 6.2.9200.0
X-IIS-Version : Microsoft-IIS/8.0
X-Worker-Request : System.Web.Hosting.IIS7WorkerRequest
X-Engine : IT Hit WebDAV Server .Net v3.1.869.0 (Evaluation License)
[7] <?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:">
<d:need-privileges>
<d:responsedescription>Not enough privileges</d:responsedescription>
<d:resource>
<d:href>http://webdrive.test.com/685/test_D47H.doc</d:href>
<d:privilege>
<d:write />
</d:privilege>
</d:resource>
</d:need-privileges>
</d:error>
"Not enough privileges" - this means an UnauthorizedAccessException is thrown when trying to create an alternate stream for the file /685/test_D47H.doc. And LOCK request is the only attempt to change this file (all other requests just read its properties).
But later you are creating file /685/test_D47H%20-%20Copy.doc and all the changing requests succeed (like PUT, PROPPATCH, UNLOCK).
This means the file /685/test_D47H.doc is write protected and any new created file - is not.

Resources